Loading...
2021. 12. 29. 01:12

gradient descent method 핵심요약

1. Gradient Descent 미분가능한 함수의 반복적인 1차미분으로 국소적 최솟값(local minimum)을 찾는 과정 loss가 감소할 때 optimum이라 기대하는 지점이 존재하는 loss function이 존재할 것이라고 가정 최적을 찾고자 하는 parameter로 loss에 대해 편미분을 함 2. stochastic gradient descent 매 학습 스텝마다 random single sample 이용한 gradient 계산 random sample 1개만 사용하여 gradient를 계산함 가장 불안정하지만 가장 빠르게 계산 가능 3. mini batch gradient descent 매 학습 스텝마다 random subset of data sample을 이용한 gradient 계산 ..

2021. 12. 26. 00:33

softmax function에 대한 진정한 의미

1. 선형모형 $O=XW+b$의 형태, $X$는 input, $W$는 가중치(Weight), $b$는 절편(intercept), $O$는 선형모형에 들어간 $X$의 Output 그림1을 보면 데이터 $X$가 n*d차원에서 선형모형을 통과하면서 n*p차원의 $O$로 바뀜 d개의 input 변수가 가중치의 조합에 의해 p개의 선형 output 변수로 바뀌는 모형 d개의 변수가 가중치에 의한 선형결합으로 각각의 output변수 $O_{1}$,$O_{2}$,...,$O_{p}$가 나옴 2. softmax input 값을 각 class에 속할 확률벡터로 변환해주는 활성화함수 \[softmax(O) = (\frac{exp(O_{1})}{\sum_{k=1}^{p} exp(O_{k})}, \frac{exp(O_{2})..

2021. 12. 25. 23:52

벡터(vector)의 정의와 기본 연산

1. 정의 공간 상에서 하나의 점 일반적으로 n차원 공간상의 하나의 점 x는 $$x=(x_{1}, x_{2}, ... , x_{n})$$ 2. 기하학적 의미 벡터는 원점으로부터 상대적인 위치 보통 그림으로 방향과 함께 화살표로 표시한다 3. 스칼라곱 벡터에 숫자를 곱한 스칼라곱은 벡터의 길이만 변화시킨다. 스칼라 a가 음수이면 방향을 바꾼다 $$ax = \begin{pmatrix}ax_{1} \\ax_{2} \\\vdots \\ax_{n}\end{pmatrix}$$ 4. 덧셈과 뺄셈 두 벡터의 크기가 같으면 대응하는 원소끼리 덧셈, 뺄셈이 가능하다. $$x\pm y = \begin{pmatrix}x_{1}\pm y_{1} \\x_{2}\pm y_{2} \\\vdots \\x_{n}\pm y_{n}\end..

2021. 12. 25. 00:41

Python의 라이브러리인 모듈(module)과 프로젝트(project)

1. 모듈(module) 하나의 작은 프로그램 조각 모듈들이 모여서 하나의 큰 프로그램이 된다 프로그램을 모듈로 잘 만들수록 다른 프로그램이 사용하기 쉽다 사람들이 생각하는 모든 상상이 이미 파이썬에는 다른 사람이 라이브러리로 구현해놓았다 모듈을 모아놓은 하나의 단위인 프로그램이 패키지(package) 파이썬에서 모듈은 py파일이다 프로그램을 py로 정한 후 다른 프로그램에서 import (파일명)으로 사용할 수 있다  fah_converter.py로 만든 py파일을 본인이 작업하고 있는 작업디렉토리에 저장  import (파일명)으로 불러오고 (모듈명).(모듈 내 존재하는 함수)로 원하는 함수를 사용함  2. namespace 모듈 호출할 때 범위를 지정..

2021. 12. 24. 01:13

모델의 일반화능력(generalization performance)

모델에 학습을 계속 시켜서 train data에 대해 error를 0으로 만드는 것이 최적인가? 많은 경우 우리는 ‘generalization performance’가 좋은, train data가 아닌 다른 test data에 대해 잘 동작하는 모델을 만들고자 함 iteration이 커질 수록 train error는 계속 줄어들지만 test error는 어느 순간 커진다는 것이 알려짐 generalization performance가 좋다는 것은 이 모델의 train data의 성능이 다른 test data에서의 성능과 비슷하게 나온다는 것임 generalization performance가 좋은 모델이 반드시 좋은 모델인가? 사실 그렇지도 않다. generalization performance가 좋다고..

2021. 12. 18. 23:52

list comprehension

일반적인 for loop보다 빠르게 리스트를 생성할 수 있다 위에가 일반적인 for loop 리스트 생성 아래는 list comprehension으로 생성 list comprehension이 조금 더 빠르다 1) 기본형 [ x for x in ] 에서 x를 뽑아서 x를 리스트에 넣어서 생성 2) 이중for문형 [ x+y for x in for y in ] 에서 x를 뽑은 뒤에 에서 y하나씩 뽑아서 x+y를 넣는다 바꿔말하면 for x in for y in .append(x+y) 3) 조건문 if [x for x in if ] 에서 x를 하나씩 뽑는데 에 맞는 경우만 리스트에 넣어준다 4) 조건문 if~else if만 쓰면 for문 뒤에 써야하는데 if~else를 쓰고 싶으면 for문 앞에 쓴다 [x if..