Machine Learning 37

SGD - 비등방성 함수(anisotropy function)

확률적 경사 미분법(SGD)의 문제점에서 "SGD는 비등방성 함수의 경우 비효율적이다"라고 언급했습니다. 비등방성 함수에 대한 검색결과가 별로 없기에 이번엔 비등방성 함수에 대해서 알아보도록 하겠습니다. 비등방성? 비등방성(anisotropy)의 정의는 방향에 따라서 물리적 성질이 바뀌는 것을 의미합니다. 이것도 말로 해서는 어렵습니다. 비등방성에 대해서 알기 위해서는 우선 등방성에 대해서 알아야 합니다. 등방성이란 "어느 방향에서 보아도 똑같은 성질을 가지고 있음"입니다. 우리가 동전을 바라 볼 때 어디서 바라보든 동전의 성질은 변하지 않습니다. 그러나 지폐의 홀로그램을 바라볼 때는 보는 방향에 따라서 다른 그림이 보이는 성질을 가지는데 이것이 비등방성의 예시입니다. 즉 비등방성을 쉽게 풀어서 얘기하면..

Machine Learning 2020.01.23

신경망 학습 - (4 - 1) 확률적 경사 하강법, SGD( Stochastic Gradient Descent )

글의 목적 지난 글 동안 매개변수의 최적값을 찾아내기 위해서 손실함수를 미분하여 가장 낮은 경사를 따라 내려가는 경사하강법(Gradient Descent)을 사용했습니다. 이번에는 최적값을 찾아내기 위한 여러가지 Optimizer중 SGD에 대해서 알아보도록 하겠습니다. 여기서 Optimizer는 매개변수가 기울기를 이용해서 최적값을 찾아가는 방법을 통틀어서 말한 것입니다. 확률적 경사 하강법, SGD( Stochastic Gradient Decent ) 1. 개념 SGD의 개념은 기존의 GD를 알고있다면 이해하기 쉽습니다. GD는 위 사진처럼 매번 모든 트레이닝 데이터에 대한 손실함수를 구하고 기울기를 구하는 과정입니다. 이런 과정은 보다 정확하게 최적값을 찾을 수 있겠지만 현실적으로 트레이닝 데이터는..

Machine Learning 2020.01.21

신경망 학습 - (3) 오차 역전파(Backpropagation)

글의 목적 이전 글에서는 신경망 학습을 위한 매개변수(가중치, 편향)의 기울기를 산출하기 위해서 손실 함수(error function)를 수치 미분하였습니다. 수치 미분은 구현하기 쉽지만 계산이 오래 걸렸습니다. 역전파는 이보다 빠르게 모든 매개변수의 기울기를 산출할 수 있습니다. 이번 글에서는 오차 역전파(backpropagation)에 대해서 알아보도록 하겠습니다. 목차 1. 계산그래프란? 2. 역전파의 기본 과정 3. 활성화 함수의 계층 구현하기 4. (어파인 변환) Affine transformation 5. Softmax & Error function( MSE, CEE ) 6. 역전파( backpropagation ) vs 수치 미분 (numerical differential) 장단점 1. 계산..

Machine Learning 2020.01.20

신경망 학습 - (2) 미니배치 학습, 기울기 그리고 신경망 학습

들어가며 지난 시간에는 신경망 학습을 위한 지표인 손실 함수에 대해서 알아보았습니다. 이번에는 신경망의 학습하는 과정에 대해서 설명하도록 하겠습니다. 확률적 경사 하강법(Stochastic gradient discent)을 이용한 신경망 학습과정을 한 문장으로 정리하면 1. 미니 배치 추출 -> 2. 기울기 계산 -> 3. 매개변수 갱신 -> 4. 1~3의 반복입니다. 이제부터 각 과정에 대해서 설명하겠습니다. 1. 미니 배치 추출 미니 배치란? 신경망 학습을 위해서 학습 데이터에서 랜덤으로 일부분만 추출한 데이터의 집합 미니 배치의 사용 학습을 시작하기 전 학습 데이터에서 일부분을 추출하는 과정입니다. 대부분 학습 데이터는 수 만에서 수 천만까지 매우 큰 용량을 가지고 있습니다. 신경망이 학습을 할 때..

Machine Learning 2020.01.19

신경망 학습 - (1) 손실함수( MSE, CEE)

신경망의 기본구조를 다룬 지난 글에 이어서 이번에는 신경망의 학습에 대해서 다루도록 하겠습니다. 우리가 여러가지 경험을 통해서 학습을 하듯이 신경망은 데이터를 통해서 학습을 할 수 있습니다. 신경망은 데이터를 주도적으로 학습함으로서 신경망 안에 있는 수만개의 또는 그 이상의 매개변수(가중치, 편향)의 값을 조절하여 사람의 간섭없이 스스로 학습능력을 향상 시킬 수 있습니다. 잠깐 컴퓨터 학습의 변천에 대해서 알아보고 가겠습니다. 본격적인 학습 방법은 손실함수에서부터 다루도록 하겠습니다. 1. 컴퓨터 학습의 변천 사람의 알고리즘 신경망이 개발되기 전 컴퓨터는 스스로 학습을 할 수 없으며 어떤 결정을 하던지 사람이 프로그래밍한 명령대로만 행동하는 형식이었습니다. 사람의 알고리즘 + 머신러닝 머신러닝과 신경망이..

Machine Learning 2020.01.19

신경망의 구조와 활성화 함수

신경망의 구조 신경망은 앞서 언급했던 퍼셉트론(여러 개의 입력을 계산하여 하나의 결과값을 출력하는 객체)과 공통점이 많습니다. 이번에는 신경망과 퍼셉트론의 차이점을 주로 설명하여 신경망에 대해서 설명하겠습니다. 신경망은 여러개의 퍼셉트론을 연결하여 입력층, 은닉층 그리고 출력층을 제작한 것입니다. 입력층은 우리가 분석하고자 하는 데이터를 입력할 때 사용되는 층입니다. 그리고 신경망이 데이터를 분석할 때 하나 이상의 은닉층에서는 매 번 가중치를 곱하고 결과값을 다음 은닉층에 전달하는 과정이 일어납니다. 이러한 일련의 과정을 거쳐 출력층에서 우리가 원하는 결과값이 출력되는 것입니다. 우리의 몸으로 비유를 하자면 눈으로 사물을 인식하는 것이 입력층이고 시각신호가 뇌에서 처리되는 것이 은닉층 그리고 은닉층을 통..

Machine Learning 2020.01.18

Deep Learning from Scratch - 1 (Chapter 1 ~ 4) 신경망

Chapter 1 ~ 3은 파이썬의 초기설정, 퍼셉트론 이론 그리고 신경망이론에 대해서 설명하고 있다. 이에 대해서는 기본적으로 알고 있다고 생각하고 여기에는 신경망을 실질적으로 이해하고 코드로 구현하는 방법에 대해서 설명하고자 한다. 1. 신경망의 정의 책에서 설명하는 신경망은 사실상 퍼셉트론의 확장이라고 할 수 있다. 퍼셉트론에서 활성화 함수(인공뉴런 의 입력값을 출력값으로 바꿀때 쓰이는 함수)로 시그모이드 함수나 ReLU함수 같은 비계단형 함수를 사용하면 그것이 신경망의 물리적 구조라고 할 수 있기 때문이다. 2. 신경망의 학습과정 신경망의 학습과정은 추상적으로 표현할 경우 다음과 같다. 1. 모델(예측함수) -> 2. 결과값 비교 -> 3. 매개변수 업데이트 계산 -> 1. 모델(예측함수) .....

Machine Learning 2019.05.18