background preloader

Neural

Facebook Twitter

RevFactory 프로젝트 - 세상을 더 이롭게 바꾸는 작업 <s_page_title> Python, C/C++, Java, Scala, Go 로 구현한 Deep Learning 코드 번역된 블로그0.

RevFactory 프로젝트 - 세상을 더 이롭게 바꾸는 작업 <s_page_title>

Neuralix's: 딥러닝 튜토리얼 1. 로지스틱 회귀. 그리고 마지막으로 MNIST 필기체 숫자인식 문제를 푸는 방법을 보일 것이다.

neuralix's: 딥러닝 튜토리얼 1. 로지스틱 회귀

로지스틱 회귀는 '확률적 선형 분류기'이다. 이는 가중치 매트릭스 와 바이어스 벡터 의 확률모수를 가진다. 분류는 각 데이터 포인트들을 몇개의 초평면들 위로 투영(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 부분만을 우선 번역하였음.

neuralix's: 딥러닝 튜토리얼 0. 처음 시작하기

번역자) 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 If you are running your code on the GPU and the dataset you are using is too large to fit in memory the code will crash. Notation. Neuralix's: 딥러닝 튜토리얼 2. 다층 신경망 (MLP) Note 이 장의 코드는 여기에서 얻을 수 있다. here.

neuralix's: 딥러닝 튜토리얼 2. 다층 신경망 (MLP)

이제 살펴볼 아키텍쳐는 1개 은닉층을 가진 다층 퍼셉트론(MLP)이다. MLP는 로지스틱 회귀를 수행하는 기계로 볼 수 있다. 단 이때 입력은 이미 학습된 비선형 변환함수 를 먼저 통과하게 된다. 이 튜토리얼은 MNIST 필기체 숫자인식 분류문제를 역시 다룰 것이다. 다층 퍼셉트론에서의 모델 MLP (또는 인공 신경망 - ANN)이 1개층의 은닉층을 가질 떄 다음 그림처럼 나타낸다 형식 상, 1개 은닉층 MLP는 다음처럼 함수의 역할을 수행한다고 본다. 이때 는 입력 벡터 의 사이즈이며 은 출력 벡터 의 사이즈이다. 는 바이어스 벡터이고 와 는 웨이트 매트릭스이며, 는 액티베이션 포텐셜 값 이다. 벡터. Untitled. Neural Network 1. ½Å°æ¸ÁÀÇ ±âº» °³³ä ÀϹÝÀûÀ¸·Î ½Å°æ¸ÁÀº ÄÄÇ»ÅÍ°¡ »ç¶÷ÀÇ ÇнÀ ±â´ÉÀ» °®°Ô Çϱâ À§ÇØ »ç¶÷ ³úÀÇ ±¸Á¶¸¦ ¸ð¹æÇÑ µ¥ÀÌÅÍ ¸ðµ¨¸µ ±â¹ý.

untitled

-> °ú°Å¿¡ ¼öÁýµÈ µ¥ÀÌÅͷκÎÅÍ ¹Ýº¹ÀûÀÎ ÇнÀ°úÁ¤À» °ÅÃÄ µ¥ÀÌÅÍ¿¡ ³»ÀçµÇ¾î ÀÖ´Â ÆÐÅÏÀ» ã¾Æ³»´Â ¸ðµ¨¸µ ±â¹ý. -> ½Å°æ¸ÁÀº »ý¹°ÇÐÀû ´º·±À» ¸ðµ¨¸µÇÑ À¯´Öµé°ú ±× À¯´Ö »çÀÌÀÇ °¡ÁßÄ¡ ¿¬°á (weighted-connection)µé·Î ÀÌ·ç¾îÁö¸ç °¢ ½Å°æ¸Á ¸ðµ¨¿¡ µû¶ó ´Ù¾çÇÑ ±¸Á¶¿Í °¢±â µ¶Æ¯ÇÑ ÇнÀ ±ÔÄ¢À» °®´Â´Ù. 2. ½Å°æ¸ÁÀÇ ¿ª»ç. Untitled. 딥러닝_Neural Network_퍼셉트론. 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입니다. 딥 러닝, 신경망...