2020/10/22 - [Study/인공지능] - Optimizer: SGD ( 인공지능 기초 #13 ) 2020/10/23 - [Study/인공지능] - Optimizer : Momentum, NAG ( 인공지능 기초 #14 ) 2020/10/24 - [Study/인공지능] - Optimizer : AdaGrad, RMSprop ( 인공지능 기초 # 15 ) 2020/10/25 - [Study/인공지능] - Optimizer : Adam ( 인공지능 기초 # 16 ) 경사하강법 : 가장 가파른곳으로 가다가 최소점이라고 생각되는곳을 찾기를 바람 (문제점 : 가장 아래가 아닌 중간에 잠깐 다시 올라가는 구간이있으면 멈춰버림, 또는 안장점에서 멈춤) ↓ 관성을 생각하자 Momentum : 경사하강법에 관성 ..
2020/10/24 - [Study/인공지능] - Optimizer : AdaGrad, RMSprop ( 인공지능 기초 # 15 ) Momentum과 RMSProp 두가지 방식을 합쳐 놓은 옵티마이저 입니다. 따라서 복잡하지만, 현재 가장 많이 쓰이는 옵티마이저 입니다. 가중치 B1으로 Momentum을 변형하여 점화식 [직전의 속도값 고려 (관성고려)] 을 생각하고 가중치 B2로 AdaGrad를 변형하여 점화식 을 생각합니다. 베타1과 베타2는 일반적으로 0.9나 0.99와 같은 1에 굉장히 가까운 숫자로 둡니다. 이때문에 초기값이 0인것에 영향을 받아 0에 편향된다. 그래서 이를 보정작업을 실시합니다. m은 관성과 그레디언트를 내분한 것 매우 복잡하다.. 복잡하긴 한데, ./././ 각 장점을 섞어놓..
2020/10/23 - [Study/인공지능] - Optimizer : Momentum, NAG ( 인공지능 기초 #14 ) learning rate가 변수마다 스텝마다 바뀝니다. 처음 시작점부터 최소점까지는 멀기 때문에 성큼성큼가다가 (보폭을 크게) 시간이 지나면 점점 목적지에 다가가게 되니까 보폭을 작게 조정합니다. 큰 변화를 겪은 변수의 러닝레이트는 크게 작아지고, 작은 변화를 겪은 변수의 러닝레이트는 작게 작아집니다. ( 이유는 x 와 y가 있을때 x축으로 더 크게 이동했다면, y축은 아직 먼 가능성이 높고 x축은 목표에 가까워 졌을 가능성이 높아졌다고 보기 때문입니다. ) Hadamard product 라는 기호입니다. 연산은 아래와 같습니다 ( 각 행렬의 위치를 덧셈처럼 위치마다 곱한값이 결과..
2020/10/22 - [Study/인공지능] - Optimizer: SGD ( 인공지능 기초 #13 ) 물리계에서는 공이 굴러가는 방향은 중력뿐 아니라 기존의 관성에도 영향을 받습니다. Momentum은 현실 물리계에서 관성이 모티브입니다. Momentum은 Gradient Descent에 현재의 관성을 추가하여 생각합니다. 경사하강법의 문제점 현실에서 실제로 공을 굴렸다고 생각한다면, 첫번째 로컬 미니멈의 최소에 멈추지않고 관성을따라 오른쪽으로 더 움직였을 것입니다. (즉 글로벌 미니멈에 다가갈 수 있습니다.) 이러한 관성의 특징으로 안장점에서도 멈추지않고 글로벌 미니멈을 향해 다가갈 수 있습니다. 등위선에서도 SGD보다 더 효율적으로 (적은 진동으로) 목표지점에 다가가는 것을 볼 수 있습니다. 이유..
2020/10/19 - [Study/인공지능] - Affine층 역전파 ( 인공지능 기초 #12 ) 심층신경망에서 층을 깊게 쌓으면 몇가지 심각한 문제가 발생하는데, 그러한 문제를 어떻게 해결할지 해결하지 못한다면 어떻게 억제할 지 공부해봅니다. Optimizer : 어떻게 하면 산을 잘 타고 내려갈까? [경사하강법] 손실함수는 낮으면 낮을수록 좋습니다. (손실함수 = 크로스 엔트로피) 크로스 엔트로피의 변수는 가중치와 편향 입니다. MNIST 기준 39760 개입니다. 39760개의 연립방정식을 푸는것은 말이 안되기 때문에, 경사하강법을 이용해 최소가 되는 지점을 찾아갑니다. 2020/10/19 - [Study/인공지능] - 경사하강법 (인공지능 기초 #9) 경사하강법 (인공지능 기초 #9) 손실함수는..
이전까지 배운 수치미분을 이용해서 학습을 하게되면 계산 비용이 너무 커서 엄청나게 오래 걸립니다. 우리는 그래서 오차역전파법을 이용해서 계산 비용을 줄여 학습을 시키는 것을 알아 볼 것입니다. 사람이 직접 공식을 써서 미분을 한 후 덧셈과 곱셈만 남겨 컴퓨터에게 유리한 계산만 남기는 것입니다. 합성함수의 미분법은 여러 함수를 합성을 할 때, 합성을 한 후 미분을 하는것이 아닌 각 각을 미분을 한 후 곱해줍니다. 이는 연쇄법칙을 사용한 것입니다. 오차역전파법의 기반은 공식으로 미분을 하고, 연쇄법칙을 사용하는 것입니다. 함수 f z h 가 있으면 h 부터 z f 순으로 미분을 한 후 곱해준다. 계산 그래프 : 순전파 왼쪽에서 오른족으로 계산하는 과정인 것이다. 계산 그래프 : 역전파 계산그래프를 이용한 역..
손실함수는 패널티 점수여서 어떤 네트워크의 손실함수 값이 크다는 것은 뉴럴 네트워크의 성능이 안좋다는 이야기이고 값이 작다는것은 뉴럴 네트워크의 성능이 좋다는 이야기라는것을 이전에 알아보았습니다. 그렇다면 손실함수의 변수는 무엇일까요? 일반적으로 데이터라고 생각하기 쉽습니다. 사실은 그렇지 않습니다. f(x) = ax ^2 + bx + c 데이터는 a,b,c 같은 상수값이고 변수 x는 가중치와 편향등이 차지합니다. 성능이 좋은 네트워크를 찾는다는 이야기는 손실함수가 작은 값을 찾는것과 같습니다. f(x)의 최대 최소를 찾고싶을때, f`(x)=0 [미분했을 때 0] 이 되는 값을 먼저 찾는것을 고등학교 때 배웠습니다. f(x,y)의 최대 최소를 찾고싶을때는 Df(x,y)=(0,0) [그레디언트 0] 이 되..
2020/10/15 - [Study/인공지능] - 손실함수, 엔트로피 (인공지능 기초 #7) 수치미분, 데이터는 학습을 할 때 미분을 통해서 학습을 한다. (sigmoid 함수를 생각을해서 활성화 함수로 잡는 것 ) 크로스 엔트로피, 평균제곱오차 : 뉴럴네트워크의 성능을 측정 , 사실 정확도가 성능 측정입니다. 학습을 할 때에는 정확도를 생각하지않고 크로스엔트로피나 평균제곱오차로 지표를 삼는다. ( 정확도는 계단식으로 1/100, 2/100 이런식이기때문에 학습은 연속적인 형태가 나타나는 크로스 엔트로피나 평군제곱오차로 측정합니다. ) h가 0이라는것은 순간적인 시간동안의 변화량을 측정하는 이야기입니다. h가 0은아니고 거의 0에 수렴하는 값에 다가가는 값이라는 이야기인데, 이를 컴퓨터에게 이해시키기에는..