deep learning 8

과대적합(Over fitting)과 과소적합(Under fitting)

과대적합(Over fitting)과 과소적합(Under fitting) 머신러닝에서 학습과정은 패턴을 발견하기 위해 모델링을 만드는 단계라고 할 수 있다. 일반적으로 모델을 만들 때에는 데이터를, 트레이닝 데이터 (training)와 테스트 데이터(test)를 나누어 사용한다. 트레이닝 데이터를 반복적으로 학습함으로써 테스트 데이터 또는 실제 데이터와 가장 유사한 결과를 만들어 내는 것을 목표로 하고 있다. 하지만 트레이닝 데이터와 테스트 데이터가 비슷하다면 모델의 정확도는 매우 높게 나올 것이다. 하지만 모델이 복잡하다면 트레이닝 데이터와 테스트 데이터의 결과는 다르게 나타날 확률이 높다. 일반적으로 트레이닝 데이터는 실제 데이터를 샘플링 하거나 특정 패턴을 인식시키기 위한 데이터로 트레이닝 데이터에 ..

경사 하강법(Gradient Descent)

경사 하강법(Gradient Descent) 경사 하강법(Gradient Descent)은 머신러닝 및 딥러닝 알고리즘을 학습시킬때 사용하는 방법 중 하나이며 1차 근삿값 발견용 최적화 알고리즘이다. 기본 개념은 함수의 기울기(경사)를 구하여 기울기가 낮은 쪽으로 계속 이동시켜 극값(최적값)에 이를 때까지 반복하는 것이다. 해당 함수의 최소값 위치를 찾기 위해 비용 함수(Cost Function)의 경사 반대 방향으로 정의한 Step Size를 가지고 조금씩 움직여 가면서 최적의 파라미터를 찾으려는 방법이다. 여기에서 경사는 파라미터에 대해 편미분한 벡터를 의미하며 이 파라미터를 반복적으로 조금씩 움직이는 것이 관건이다. 경사 하강법에서는 학습시 스텝의 크기 (step size)가 중요하다. 학습률이 너..

순전파(Feedforward)와 역전파(Backpropagation) 개념

순전파(Feedforward)와 역전파(Backpropagation) 개념 다층 퍼셉트론(Multi-layer Perceptron, MLP)으로 학습 한다는 것은 최종 출력값과 실제값의 오차가 최소화 되도록 가중치와 바이어스를 계산하여 결정하는 것이다. 순전파 (Feedforward) 알고리즘 에서 발생한 오차를 줄이기 위해 새로운 가중치를 업데이트하고, 새로운 가중치로 다시 학습하는 과정을 역전파 (Backpropagation) 알고리즘 이라고 한다. 이러한 역전파 학습을 오차가0에 가까워 질 때까지 반복한다. 역전파 알고리즘을 실행할때 가중치를 결정하는 방법에서는 경사하강법이 사용된다. [순전파 (Feedfoward)] 입력층에서 은닉층 방향으로 이동하면서 각 입력에 해당하는 가중치가 곱해지고, 결과..

다층 퍼셉트론 (Multi-layer Perceptron)

다층 퍼셉트론 (Multi-layer Perceptron) 퍼셉트론은 사람 뇌의 단일 뉴런이 작동하는 방법을 흉내내기 위해 환원 접근법 (reductionist approach)을 이용한다. 이 방법은 초기 가중치를 임의의 값으로 정의하고 예측값의 활성 함수 리턴값과 실제 결과값의 활성 함수 리턴값이 동일하게 나올 때까지 가중치의 값을 계속 수정하는 방법이다. 단층 퍼셉트론의 경우 AND, NAND, OR 논리회로를 계산할 수 있지만 XOR 게이트 연산을 할 수 없다. XOR 게이트는 베타적 논리합 이라 불리는 회로이다. 이 뜻은 한쪽이 1일 때만 1을 출력한다 퍼셉트론 이론은 선형 분류이다. 즉 직선을 이용한 분류는 가능하지만 XOR 게이트와 같은 경우 곡선으로 나눌 수 있기 때문에 비선형 분류이다. ..

단층 퍼셉트론 (Single-layer Perceptron)

단층 퍼셉트론 (Single-layer Perceptron) 퍼셉트론 (Perceptron)은 1957년 코넬 항공 연구소에 근무하던 프랑크 로젠블라트(Frank Rosenblatt)가 MCP 뉴런 모델을 기초로 퍼셉트론이라는 알고리즘을 고안하였다. 퍼셉트론은 하나의 MCP 뉴런이 출력신호를 발생할지 안할지 결정하기 위해 MCP 뉴런으로 들어오는 각 입력값에 곱해지는 가중치 값을 자동적으로 학습하도록 한 모델이며 입력 벡터를 두 부류(class)로 구분하는 선형 분류기 이다. 퍼셉트론은 신경망(딥러닝)의 기원이 된 알고리즘이다. 퍼셉트론은 다수의 신호를 입력 받아 하나의 신호를 출력한다. 여기서 말하는 신호는 전류처럼 흐름이 있는것을 뜻하며, 흐름의 상태 정보를 앞으로 전달한다. 아래 그림은 x1, x2..

머신러닝 학습 방법(Supervised, Unsupervised, Reinforcement)

머신러닝 학습 방법(Supervised, Unsupervised, Reinforcement) 머신러닝의 데이터 학습 방법에는 지도 학습 (Supervised Learning)과 자율 학습 (Unsupervised Leaning), 강화 학습(Reinforcement Learning) 3가지 타입이 있다. 지도 학습 (Supervised Learning)과 자율 학습 (Unsupervised Leaning)에 사용되는 알고리즘은 아래 그림과 같이 나눌 수 있다. [지도 학습 (Supervised Learning)] 지도 학습(Supervised Learning)은 데이터에 대한 레이블(Label)-명시적인 정답-이 주어진 상태에서 컴퓨터를 학습시키는 방법이다. 이렇게 구성된 트레이닝 데이터셋으로 학습이 끝..

인공지능 / 머신러닝 / 딥러닝 개념

인공지능 / 머신러닝 / 딥러닝 개념 인공지능 (Artificial Intelligence)과 머신러닝 (Machine Learning), 딥러닝 (Deep Learning) 개념에 대해서 살펴본다. [인공지능 (Artificial Intelligence)] 인간의 지능으로 할 수 있는 사고, 학습, 자기 개발 등 컴퓨터가 대체할 수 있도록 하는 방법을 연구하는 분야이다. [머신러닝 (Machine Learning)] 사람이 학습하듯 컴퓨터에게 사람이 데이터를 입력시켜 학습을 시키는 방식으로, AI는 정확한 결과를 예측 할 수 있도록 제공된 학습 데이터를 다양한 알고리즘을 통하여 스스로 학습한다. 머신러닝은 정해진 명령보다 데이터를 기반으로 예측이나 결정을 이끌어 내기 위해 특정한 모델을 구축하는 방식으..

CNN (Convolutional Neural Network) 개념

CNN (Convolutional Neural Network) 개념 CNN(Convolutional Neural Network)은 이미지를 분석하기 위해 패턴을 찾는데 유용한 알고리즘으로 데이터에서 이미지를 직접 학습하고 패턴을 사용해 이미지를 분류한다. CNN의 핵심적인 개념은 이미지의 공간정보를 유지하며 학습을 한다. CNN은 필터링 기법을 인공 신경망에 적용함으로써 이미지를 더욱 효과적으로 처리하기 위해 Yann LeCun (https://en.wikipedia.org/wiki/Yann_LeCun)이 제안하였으며 (http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf) 현재 딥 러닝에서 이용되고 있는 형태의 CNN이 제안되었다. 기존의 필터링 ..