background preloader

Neural

Facebook Twitter

RevFactory 프로젝트 - 세상을 더 이롭게 바꾸는 작업 <s_page_title> :: Deep Learning Study 참고</s_page_title> Python, C/C++, Java, Scala, Go 로 구현한 Deep Learning 코드 번역된 블로그0. 딥러닝 시작하기 : 로지스틱 회귀 : 다층신경망(MLP) : Neuralix's: 딥러닝 튜토리얼 1. 로지스틱 회귀. 그리고 마지막으로 MNIST 필기체 숫자인식 문제를 푸는 방법을 보일 것이다. 로지스틱 회귀는 '확률적 선형 분류기'이다. 이는 가중치 매트릭스 와 바이어스 벡터 의 확률모수를 가진다. 분류는 각 데이터 포인트들을 몇개의 초평면들 위로 투영(projection)하는 과정을 통해 이루어지는데 이 초평면 상에서의 거리가 클래스 멤버십의 확률값을 나타내게 된다.

그래서 이 모델 혹은 예측의 결과는 P(Y=i|x)가 최대값인 경우의 클래스 i를 취하는 것이다. 이상을 수행하는 코드는 다음과 같다: # 심볼릭 변수를 생성한다. 맨 처음 x, y의 심볼릭 변수를 지정하였다. x = T.fmatrix('x')y = T.lvector('y') 모델의 파라미터는 트레이닝이 수행되는 동안 계속 영속적이어야 하므로 에 대한 공유변수를 지정하였다. B = theano.shared(numpy.zeros((10,)), name='b')W = theano.shared(numpy.zeros((784, 10)), name='W') dot를 통한 내적 연산이나 softmax 등은 의 벡터 결과치를 계산하는데에 쓰였다. 여기까지 우리는, Theano가 수행해야 할 계산들의 그래프를, 코드를 통해 설정했다. 이제 의 실제 수치값을 얻기위해 입력 x를 받고 출력 p_y_given_x를 내는 함수 get_p_y_given_x를 만들어야 한다. 이제 Theano 그래프를 구축하는데 있어 마지막으로 실제 모델 예측치를 얻어내도록 하자. 그리고 다시 한번, 주어진 입력에 실제 예측치를 계산해내기 위해 classify함수를 생성해야 한다. 여기까지 왔지만, 우리는 아직 의미있는 결과를 얻지는 못하고 여전히 랜덤한 초기값만을 가진다. 손실함수를 설정하기 최적 파라미터의 학습은 그 안에 손실함수의 극소화를 해야한다. 를 모델이 따를 때, 데이터 세트 에 대한 라이클리후드를 극대화하는 것과 동등한 것이라고 할 수 있다. 라이클리후드 과 손실 을 다음과 같이 정의하자: 주어진 미니뱃취에 대한 (심볼릭) 손실을 정의한 부분은 다음과 같다: 노트 나 와.

Neuralix's: 딥러닝 튜토리얼 0. 처음 시작하기. (Early-stopping 부분만을 우선 번역하였음. 번역자) These tutorials do not attempt to make up for a graduate or undergraduate course in machine learning, but we do make a rapid overview of some important concepts (and notation) to make sure that we’re on the same page. You’ll also need to download the datasets mentioned in this chapter in order to run the example code of the up-coming tutorials. Download On each learning algorithm page, you will be able to download the corresponding files. Git clone Datasets MNIST Dataset The MNIST dataset consists of handwritten digit images and it is divided in 60,000 examples for the training set and 10,000 examples for testing.

For convenience we pickled the dataset to make it easier to use in python. The data has to be stored as floats on the GPU ( the right dtype for storing on the GPU is given by theano.config.floatX). Note Notation Dataset notation We label data sets as . And . Is an indexed set of pairs . . . . Where ). Neuralix's: 딥러닝 튜토리얼 2. 다층 신경망 (MLP) Note 이 장의 코드는 여기에서 얻을 수 있다. here. 이제 살펴볼 아키텍쳐는 1개 은닉층을 가진 다층 퍼셉트론(MLP)이다. MLP는 로지스틱 회귀를 수행하는 기계로 볼 수 있다. 단 이때 입력은 이미 학습된 비선형 변환함수 를 먼저 통과하게 된다. 이 튜토리얼은 MNIST 필기체 숫자인식 분류문제를 역시 다룰 것이다. 다층 퍼셉트론에서의 모델 MLP (또는 인공 신경망 - ANN)이 1개층의 은닉층을 가질 떄 다음 그림처럼 나타낸다 형식 상, 1개 은닉층 MLP는 다음처럼 함수의 역할을 수행한다고 본다. 이때 는 입력 벡터 의 사이즈이며 은 출력 벡터 의 사이즈이다.

는 바이어스 벡터이고 와 는 웨이트 매트릭스이며, 는 액티베이션 포텐셜 값 이다. 벡터 는, 은닉층의 결과를 나타낸다. 는 입력 벡터의 은닉층으로의 연결 가중치를 나타내는 가중치 매트릭스이다. 의 각 열은 입력 유닛에서 i번째 은닉층 뉴론으로의 연결 가중치를 나타낸다. s함수의 형태에 대한 전형적인 선택은 (:탄젠트 하이퍼볼릭) 함수로써 구체적인 식은 다음과 같다. 또는 이 대신 로지스틱 (: ) 함수가 택해지기도 하는데 그 경우는 다음과 같은 꼴을 가진다. 우리는 이 튜토리얼에서 s함수로써 을 사용할 것인데 그 이유는 이것이 보통 학습 시 더 빠르게 동작하기 때문이다 (덧붙이면, 국소 최적해 문제에 대해서도 더 강인하다.). 과 함수는 모두 스칼라-to-스칼라 함수인데 벡터 형태로의 확장이나 텐서 형태로의 확장은 모두 개별 원소적으로 다뤄져야 함을 말하고 싶다. 결과 벡터는 이제 다음처럼 얻어진다. MLP를 훈련함으로써 우리는 모델이 필요로 하는 '모든' 파라미터를, 학습을 통해 얻게되는데 여기서 우리는 미니뱃취 방법과 Stochastic Gradient Descent 를 활용하여 그것을 수행한다. 와 같다.

그래디언트(:경사) 는 Backpropagation 알고리즘 (:연쇄적 미분 규칙의 특수한 형태)를 통해 얻어진다. 로지스틱 회귀로부터 MLP로 가기 이 튜토리얼은 단층 MLP(;은닉층이 1개층인 MLP)만 살핀다. 이때, 는 비선형성. Untitled. Neural Network 1. ½Å°æ¸ÁÀÇ ±âº» °³³ä ÀϹÝÀûÀ¸·Î ½Å°æ¸ÁÀº ÄÄÇ»ÅÍ°¡ »ç¶÷ÀÇ ÇнÀ ±â´ÉÀ» °®°Ô Çϱâ À§ÇØ »ç¶÷ ³úÀÇ ±¸Á¶¸¦ ¸ð¹æÇÑ µ¥ÀÌÅÍ ¸ðµ¨¸µ ±â¹ý. -> °ú°Å¿¡ ¼öÁýµÈ µ¥ÀÌÅͷκÎÅÍ ¹Ýº¹ÀûÀÎ ÇнÀ°úÁ¤À» °ÅÃÄ µ¥ÀÌÅÍ¿¡ ³»ÀçµÇ¾î ÀÖ´Â ÆÐÅÏÀ» ã¾Æ³»´Â ¸ðµ¨¸µ ±â¹ý. -> ½Å°æ¸ÁÀº »ý¹°ÇÐÀû ´º·±À» ¸ðµ¨¸µÇÑ À¯´Öµé°ú ±× À¯´Ö »çÀÌÀÇ °¡ÁßÄ¡ ¿¬°á (weighted-connection)µé·Î ÀÌ·ç¾îÁö¸ç °¢ ½Å°æ¸Á ¸ðµ¨¿¡ µû¶ó ´Ù¾çÇÑ ±¸Á¶¿Í °¢±â µ¶Æ¯ÇÑ ÇнÀ ±ÔÄ¢À» °®´Â´Ù. 2. ½Å°æ¸ÁÀÇ ¿ª»ç -> 1946³â : ÃÖÃÊÀÇ ½Å°æ¸ÁÀÌ »ý¼º · ¸ÆÄ÷°°ú ÇÇÃ÷ÀÇ ³í¹® "½Å°æ°èÀÇ È°µ¿¿¡ ³»ÀçÇÏ´Â °³³äµéÀÇ ³í¸®Àû ºÐ¼®"¿¡ ÃÖÃÊ·Î ½Å°æ¸ÁÀÇ ±¸Á¶¸¦ Á¦½Ã · ½Å°æ ¼¼Æ÷ÀÇ Ãâ·Â°ªÀÌ 1 ¶Ç´Â 0ÀÎ ÀÌÁø ÇüÅÂÀÇ µ¿ÀÛÀ» ÇÏ´Â ±¸Á¶ : M-P ½Å°æ¼ÒÀÚ -> 1949³â : ÇìºêÀÇ ±ÔÄ¢ÀÌ ¸¸µé¾îÁü · Donald O.

. · µÎ ´º·± »çÀÌÀÇ ¿¬°á°­µµ¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ´Â ÃÖÃÊÀÇ ±ÔÄ¢ÀÌ Á¦¾È -> 1957³â : Frank Rosenblatt¿¡ ÀÇÇØ µ¨Å¸ ±ÔÄ¢(Delta rule) °³¹ß · ÃÖÃÊÀÇ ½ÇÁ¦Àû ½Å°æ¸ÁÀÎ ÆÛ¼ÁÆ®·Ð(perceptron)ÀÌ ¸¸µé¾îÁü -> 1969³â : MarvinMinsky¿Í Seymour papert "Perceptron"¶õ Àú¼­¿¡¼­ perceptronÀÇ ÇÑ°èÁ¡ ¹àÈû. · ½Å°æ¸Á ¿¬±¸ÀÇ ¾ÏÈæ±â. ¢º Àå Á¡ Untitled. 딥러닝_Neural Network_퍼셉트론 :: Creation & Freedom.

Untitled. Perceptron(Deep Learning 쉽게 이해하기_#1.5) - Laonbud. A Neural Network in 11 lines of Python (Part 1) - i am trask. AI Korea - 파이썬 코드 11줄로 구현한 Neural Network입니다. 딥 러닝, 신경망... AI Korea - 파이썬 코드 11줄로 구현한 Neural Network입니다. 딥 러닝, 신경망...