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에 수렴하는 값에 다가가는 값이라는 이야기인데, 이를 컴퓨터에게 이해시키기에는..
MNIST는 머신러닝 계의 printf("hello world") 라고도 할 수 있습니다. MNIST 데이터셋은 0부터 9까지의 손글씨 이미지로 구성되어 있습니다. 머신러닝은 데이터를 훈련 데이터, 테스트 데이터로 나눕니다. 또는 세가지 훈련 데이터, 테스트 데이터, 벨류 데이터로 나누기도 합니다. 머신러닝에는 훈련 데이터와 테스트 데이터를 절대 섞지 않는다 라는 원칙이 있습니다. 이게 섞이면 신뢰도에 문제가 생기기 때문입니다. 각 데이터는 이미지와 라벨로 이루어져 있습니다. ( 이미지는 손글씨 사진, 라벨은 그 숫자가 무엇인지 적혀있는 곳 ) 각 이미지는 28*28 해상도의 흑백 사진 입니다. 각 픽셀은 0에서 255로 밝기를 표현합니다. 우리는 인공신경망에 이 훈련데이터를 넣어서 학습을 시킵니다. 그..
2020/09/16 - [Study/인공지능] - 3층 인공신경망 ( 퍼셉트론과 활성화 함수의 결합 ) ( 인공지능 기초 #5-1) 2020/09/15 - [Study/인공지능] - Heaviside 함수 Sigmoid함수 ReLU 함수, 신경망과 활성화 함수 ( 인공지능 기초 #4 ) 확률 벡터는 단순하게 확률을 벡터로 표현한 것이다. 중요한점은 1. 확률은 음수가 없다는 점. 2. 모든 확률을 더하면 1이 나온다는 점 이다. 일반적인 벡터는 음수일 수도 있고, 다 더했을때 1이 되지 않을수도 있다. 이러한 벡터를 양수이며 다 더하면 1이 되도록 바꾸어 주는 것이 Softmax 변환 이다. ( 확률벡터로 변환시켜주기 ) 방법으로는 (a1,a2,a3 ,...,an) 이 있을 때 1. 양수로 만들기 e^x..
인공신경망은 퍼셉트론과 앞에서 공부했던 활성화 함수들의 아이디어를 결합한 것입니다. 2020/09/15 - [Study/인공지능] - Heaviside 함수 Sigmoid함수 ReLU 함수, 신경망과 활성화 함수 ( 인공지능 기초 #4 ) 2020/09/14 - [Study/인공지능] - 다층 퍼셉트론 XOR 논리회로 표현하기 , 단층으로 안되는 이유 ( 인공지능 기초 #3 ) 2020/09/13 - [Study/인공지능] - 퍼셉트론 AND, NAND, OR 논리회로 표현하기 ( 인공지능 기초 #2 ) 2020/09/13 - [Study/인공지능] - 퍼셉트론, 뉴런 네트워크의 모방 ( 인공지능 기초 #1 ) 오늘 알아볼 내용은 3단계로 구성된 3층 인공신경망입니다. 1은 고정된 값이며(*b : 편향)..