전체보기 106

신경망 학습 - (4 - 3) AdaGrad(Adaptive Gradient)

지난 글 Momentum에 이어서 이번에는 AdaGrad라는 매개변수의 Optimizer에 대해서 알아보도록 하겠습니다. AdaGrad란? Adaptive Gradient의 줄임말로서 지금까지 많이 변화한 매개변수는 적게 변화하도록, 반대로 적게 변화한 매개변수는 많이 변화하도록 learning late의 값을 조절하는 개념을 기존의 SGD에 적용한 것입니다. AdaGrad의 장점 SGD에서 비등방성 함수의 경우 비효율적이라고 얘기하면서 예시를 보여드렸습니다. 지그재그로 계속 이동하게되어 실제 손실함수의 최솟값으로 이동하는데 비효율적인데 만약 학습률(learning late)을 낮춘다면 어떻게 될까요? SGD에서 손실함수의 기울기(gradient)는 벡터의 방향성을, 학습률은 벡터의 크기를 의미하는 바가..

Machine Learning 2020.01.28

신경망 학습 - (4 - 2) 모멘텀 (Momentum)

신경망 학습 - 4에서는 매개변수를 갱신하는 효율적인 방법에 대해서 알아보겠습니다. 지난번에서는 학습시간을 단축시키기 위해서 미니배치를 추출하여 학습하는 SGD, 확률적 경사하강법에 대해서 알아보았습니다. SGD는 비등방성 함수의 경우 문제점이 발생한다는 것을 알았으니 이번에는 이를 보완하기 위한 Momentum이라는 Optimizer(매개변수 갱신 방법)에 대해서 알아보도록 하겠습니다. 모멘텀이란? 모멘텀은 운동량을 의미하며 Momentum Optimizer는 매개변수의 이동에 속도를 부여하는 것을 의미합니다. 쉽게 말해서 구슬을 떨어트리면 급한 경사에서는 더 빨라지듯이 매개변수의 변화에도 속도를 부여하는 것입니다. 수식 위 수식을 보면 알겠지만 매개변수를 갱신 할 때마다 기존속도에 매개변수의 기울기값..

Machine Learning 2020.01.23

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

CSS - Element가 배치되는 방법들

CSS - Element가 배치되는 방법 1. display : 기본적으로 Element의 배치 형식을 설정 1) display : block; :block 형식은 벽돌을 쌓은 것처럼 위에서 아래로 순서대로 채워짐 (기본적으로 block인 태그: div, p , ...) 예시:http://jsbin.com/xabafaxasi/1/edit?html,css,output 2) display : inline; : 기본적으로 왼쪽에서 오른쪽으로 가지만 크기를 초과할 경우 다음 라인으로 넘어감 (아주 기본적인 스타일) 예시: http://jsbin.com/mefebos/2/edit?html,css,output (기본적으로 inline인 태그: span,a ,...) 2. position 1) static :기본값,..

Web 2020.01.18

Servlet - Hellow World 출력하기(intellij)

Servlet - Hellow World 출력하기(intellij) 1. Java Enterprice -> Web Application 열기 : 이 때 다운받은 WAS서버(이 포스팅에는 Tomcat 사용) 종류와 폴더의 위치를 정해주고 난 후 Next 버튼을 누르고 난 후에 프로젝트명을 설정해줍니다. 2. Servlet 파일 만들기 : 사진을 따라서 서블릿 클래스 파일을 만듭니다. 3. 소스코드 입력하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package examples; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import..

Web 2020.01.18

2017 카카오페스티벌 예선 문제 1 - 카카오프렌즈 컬러링북 풀이

출처: http://t1.kakaocdn.net/codefestival/preliminary.pdf 이번에 풀어볼 문제는 다음과 같습니다. 이번 문제를 풀 때 DFS search를 써서 인접한 영역들을 찾아내고 그 크기를 계산하는 것을 시도했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 class Solution { public static int m,n; public static int[][] picture; public static boolean visited[]..