본문 바로가기

머신러닝, 딥러닝

(14)
미니 배치 학습 기계학습 문제는 훈련 데이터를 사용해 학습한다. 더 구체적으로 말하면 훈련 데이터에 대한 손실 함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾아낸다. ​ 이렇게 하려면 모든 훈련 데이터에 대한 손실 함수를 구해야 한다. 극단적으로 훈련 데이터가 1억개라면, 손실함수의 연산을 1억번 해야한다는 것이다. ​ 지금까지는 데이터 하나에 대한 손실 함수만 생각해봤으니, 이제 훈련 데이터 모두에 대한 손실 함수의 합을 구하는 방법을 생각해보자. ​ 예를 들어 교차 엔트로피 오차는 아래의 식처럼 된다. ​ 이 때 데이터가 N개라면, t_nk 는 n 번째 데이터의 k번째 값을 의미한다. ( y_nk는 신경망의 출력, t_nk는 정답 레이블 이다). ​ 수식이 좀 복잡해 보이지만, 데이터 하나에 대한 손실 ..
교차 엔트로피 오차 ( Cross Entropy Error, CEE ) 손실 함수로서, 교차 엔트로피 오차 ( Cross Entropy Error , CEE ) 도 자주 이용한다. ​ cee의 식 Y는 신경망의 출력, T는 정답 레이블이다. ​ 또 T는 정답에 해당하는 인덱스의 원소만 1이고 나머지는 0이다( ONE-HOT ENCODING ) ​ 그래서 위의 식은 실질적으로 정답일 때의 추정(T가 1일 때의 Y)의 자연로그를 계산하는 식이 된다. ( 정답이 아닌 나머지 모두는 T가 0이므로, log와 연산이 되어도 결과에 영향을 주지 않는다.) ​ 즉, 교차 엔트로피 오차는 정답일 때의 출력이 전체 값을 정하게 된다. ​ 자연로그 y= logx 의 그래프 이 그림에서 보듯이 x가 1일때는 y는 0이 되고, x가 0에 가까워질수록 y의 값은 점점 작아진다. 위의 식도 마찬가지..
tensorflow CNN (합성곱) 에서의 conv2d tf.nn.conv2d(x, W, strides=[1,1,1,1], padding='SAME') 합성곱 연산은, 이름 그대로 합성곱 신경망에서 계층이 연결되는 가장 기본적인 방법이다. 텐서플로에서 기본 제공되는 conv2d()함수를 사용한다. 여기의 x는 입력 이미지 또는 네트워크를 따라 이전 합성곱 계층들에서 얻어진 아래층의 특징 맵 데이터이다. 이전에 설명한 것처럼 일반적인 CNN 모델에서는 합성곱 계층을 층층이 쌓아 올리는데 Feature map은 일반적으로 이들 각 계층의 출력을 칭하는 말이다. 각 계층의 출력을 필터와 몇몇 연산을 적용한 결과인 "처리된 이미지"로 생각하는 것도 한 방법이다. 여기서 필터는 합성곱 필터를 나타내는 네트워크의 학습된 가중치인 W로 매개변수화된다. conv2d의 매개..
손실 함수와 평균 제곱 오차 ( MSE ) 신경망 학습에서는 현재의 상태를 “ 하나의 지표 “로 표현한다. 그리고 그 지표를 가장 좋게 만들어주는 가중치 매개변수의 값을 탐색하는 것이다. ​ 신경망 학습에서 사용하는 지표는 “ 손실 함수 ( Loss function ) “ 라고 한다. 이 손실 함수는 임의의 함수를 사용할 수도 있지만, 일반적으로는 ​ 평균 제곱 오차와 교차 엔트로피 오차를 사용한다. ​ NOTE_ ​ 손실 함수는 신경망 성능의 ‘나쁨’을 나타내는 지표로, 현재의 신경망이 훈련 데이터를 얼마나 잘 처리하지 ‘못’히는를 나타낸다. ‘성능 나쁨’을 지표로 한다니 무언각 부자연스럽지만, 손실 함수에 마이너스만 곱하면 ‘얼마나 나쁘지 않나?‘, 즉 ‘ 얼마나 좋으냐’라는 지표로 바뀌게 된다. 성능의 ‘나쁨’과 성능의 ‘좋음’ 중 어느 쪽..
신경망 학습 “ 학습 “ 이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 의미한다. ​ 신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 소개한다. ​ 이 손실 함수의 결괏괎을 가장 작게 만드는 가중치 매개변수를 찾는 것이 목표이다. ​ 손실 함수의 값을 가급적 작게 만드는 기법으로, 함수의 기울기를 활용하는 경사법을 알아보자. ​ 신경망의 특징은 데이터를 보고 학습할 수 있다는 점이다. 데이터에서 학습한다는 것은 가주이 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다. ​ 수작업으로 매개변수를 정해주는 것은 매우 쓸모없고, 불가하다. ​ NOTE_ ​ 퍼셉트론도 직선으로 분리할 수 있는 ( 선형 분리 기능 ) 문제라면 데이터로부터 자동으로 학습할 수 있다. 선형 분리 가능 문제..
머신러닝과 딥러닝 머신러닝의 연산 과정에서 입력과 출력은 사람이 판단하지만, 내부 구조인 함수는 컴퓨터가 규칙으로 이끌어 내 생성한다. ​ ​ 지도 학습 (Supervised Learning) : 사람이 제시한 지도(정답) 데이터를 바탕으로 학습하는 방법 비 지도 학습 (UnSupervised Learning) : 사람도 예측할 수 업서나, 그 데이터의 양이 매우 많아 지도 데이터를 제공하기 어려운 경우에 사용, 보통 데이터의 특징을 파악하는 데에 사용 ​ ​ 클래스 분류 : 사람이 정답을 확인할 수 있는 분류 기준 Ex) 중간 고사 성적 평균이 50점 미만, 50점 이상인 학생의 그룹 분류 -> 사람이 제시한 지도를 바탕으로 학습하므로, 지도 학습 ​ 군집화 : 정답을 확인할 수 없는 상태로 그룹을 나눔, 데이터를 “몇..