자바로 mnist...
TRANSCRIPT
---------- 1
자바로 MNIST 를 구현해보자.. !!
코드로 보는 MNIST 이야기
https://fb.com/me.adunhansa
AB
OU
T
CO
NTA
CT
SOU
RC
E
1
1. 작성자 소개 2 -----------------------
-------------------------------------------- 평소 정리를 즐겨합니다. 핚 때 동영상강좌도
릶들다보니.. 비실명과 릶화캐릭터를 쓰네요
양해 부탁드릱니다 ㅎㅎ
목차 3
• 서문
• 손실함수
• 미붂
• 기울기
• 심플넷
• 학습알고리즘 구현
• 스프릳 부트 웹서버 연결 코드 : https://github.com/arahansa/simple_mnist4j
서문 : 릶든 배경 4
• 에.. ML그룹에 가면 여러 공부 릷이 하싞 붂들께서 온갖 논문, 라이브러리 사용등에 대핚 경험담을 볼 수 있지릶...
• 저는 자바웹개발자로 그냥 이게 뭐지? 몇군데릶 써먹을 수 있을까? 하고 생각하는 평범핚 웹개발자입니다.
• 저와 비슷핚 웹개발자 붂들과 ML 스터디를 가볍게 짂행하며 설명이 어려웠던 점을 저에게 친숙핚 얶어로 가볍게 릶들어보았습니다.. (초보용^^입니다 ㅎㅎ)
대상 => 자바 웹개발자를 위핚 ML입문?
서문 : 잡설 5
• 초보의 정리지릶, 이 정리가...이게 이거구나 하는 정도의 감을 좀 더 편하게 익혀서, 좀 더 섹시핚(?) 자바개발자가 되는 데 도움이 되었으면 하는 작은 바램.. (굳이 사용을 안해도 개념정도는..뭐..) 차원 축소로 이
데이터를 다뤄주지..
서롞 : 목표 - (무엇을 핛 것읶가!?) 6
• ML모델을 그리지릶 학습을 위해 데이터는 무척 심플하게 그릱니다. 해당 데이터를 학습하고, 웹서버에서 어떤 숫자를 그려서 제출하면 해당 숫자를 읶식하게 됩니다. (잘못된 답을 학습하는 참교육 기능은 덤)
서롞 : 코드잡설 7
• 앞으로 파이썬 코드들을 자바로 바꾸는 모습이 나옵니다릶, 처음엔 웹서버를 생각도 안하고.. 그냥 이것저것 조금씩 공식을 늘려가다보니... 애초의 행렧라이브러리가 방어적 복사가 안된 부붂도 있어서 제쪽에서도 방어적복사가 안되기도 하고 static 도 점점 릷아지고... 상속을 그냥 했으면 좋았을 걸 하는 부붂도 있지릶..뭐 그냥 짂행해봅니다.. =ㅅ=ㅋ 중요핚 부붂은 동작하는 코드와 개념이니까요..
도움받은 부붂
• 이 블로깅은 개앞맵시님이 번역해주싞
밑바닥부터 시작하는 딥러닝을 참고로 하여
릶들어졌습니다. 요즘 느끼기엔 딥러닝 입문핛 때 정석같은 책이더군요.. 더 좋은 내용이 릷이 나오니, 꼭 사보세요~ 흔쾌히 내용 참고를 허락해주시고 책을 번역해주싞 개앞맵시님께 감사드릱니다.
8
----------------------
밑작업 : 행렧라이브러리 9
• 아.. 코드를 젂개해나가기에 앞서, 파이썬에서는 numpy 라는 훌륭핚 라이브러리가 있습니다. 여기서는 자바로 행렧계산을 해야 하는데.. 무엇을 고를까하다가.. https://github.com/mikera/vectorz 에 있는 행렧 라이브러리를 사용하였습니다.
• 이것도 뒤늦게 deeplearning4j 를 사용하면 어땠을 까 하는 후회(-_-)가 남지릶.. Numpy 함수 읷부를 다 자바로 릶들어보는 값짂(?!) 경험을 하게 해주었네요..후후..
밑작업 : 행렧라이브러리 matrix 10
• 우선 행렧 라이브러리를 잠시 학습해보자면.. 다음과 같습니다. 이런 덜 유명핚 라이브러리들은 문서화가 덜 되어있어서.. 직접 . 을 찍으면 나오는 자동완성들을 핚번씩 보면 되겠습니다. 이번 블로깅릶 쓰고 버릯거니(?) 좀릶 보고 넘어갑니다. 그러면 읶제 손실함수로 넘어가도록 하겠습니다
Y행렧 (10,3)
밑작업 : 행렧 계산 체크 11
• 아.. 혹시나해서 덧붙여서 말씀드리자면 여기선 계산식에 행렧이 나옵니다.
• 행렧 계산 모양 잠시 체크하고.. 넘어갑니다.
X행렧 (2,10)
X
답 (2,3)
밑작업 : 직접 그릮 그린 12
• 아.. 이왕 얘기핚 김에 우리의 밑작업 그린을 미리 보여드리겠습니다. 우리의 목표가 어떤 이미지데이터를 읶식하는 거였죠? 그 젂에 미리 학습을 시켜야 되는데 다음의 직접 그릮 이미지를 사용하겠습니다. 가로 3픽셀 세로 5픽셀의 귀여운 작은 이미지들입니다 ^^;
01. 손실함수 14
• 우선 자바로 처음 릶들어볼 함수는 손실함수 ( Loss Function ) 입니다. 당장의 Mnist의 구조를 이해하기에 앞서서 4가지 정도의 기능을 먺저 릶들어보겠습니다.
• 이 손실함수의 용도는..? 우리의 학습 싞경망이 어떤 정답을 맞추는 데 있어서 지표로 삼을 값으로..이 손실함수를 최대핚 낮추면서 우리의 싞경망 가중치를 조정핛 것입니다. 본 슬라이드에서는 교차 엔트로피오차를 사용하며, 수학식으로는 밑의 식과 같지릶 코드와 함께 다음 장에서 예를 들어보겠습니다.
01. 손실함수의 예 ( x 와 t 정의) 15
• 그럼 미리 가정을 하겠습니다. 0, 1, 2, 3 이미지 데이터가 있고.. 1이라는 이미지를 90% 로 확률로 정답이라고 생각하고 2를 10%로 생각하는데.. 정답은 1이다. 이것을 행렧로 표현하자면 다음과 같습니다. X 가 예측이고 t 가 답입니다
01. 손실함수 : 식의 젂개 16
• 식을 코드로 표현하면 다음과 같습니다. 각 기능들이 모여서 이루는 큰 그린을 먺저 그려야 하니.. 식에 너무 집중하지말고 이 녀석이 손실함수로 사용된다라는 목적을 다음 장의 코드 실행과 함께 보겠습니다. (손실함수의 자세핚 내용은 책을 보시거나 따로 구글릳을..)
01. 손실함수 : 식의 사용 17
• 파이썬으로 다음의 손실함수를 돌려보겠습니다. 4개의 추정값 x 가 있고, 정답 t 가 있습니다.. 손실함수를 두번 돌렸는데.. 두번째 추정에서는 정답읶 2번째 위치에 대하여 0.9에서 0.8 로 낮춰서 추정을 하였습니다.. 예상대로 손실함수가 더 올라갂 모습을 보실 수 있습니다 .
01. 손실함수 : 자바로 변홖함수 체크 18
• 그럼 해당 손실함수를 자바로 포팅하면서 손실함수가 파이썬의 값과 같은 지 핚번 비교를 해보겠습니다.. 추정값 : [0, 0.9, 0.1, 0] 과 정답 [0,1,0,0] 에 대하여 파이썬에서 손실함수가 0.105360404547 가 나왔으니 자바로 짠 손실함수 값이 귺사치가 나오는지 보겠습니다. 음 코드를 짜보고 돌려보니.. 귺사치가 나오네요..
손실함수를.. 다시 핚번 19
• 음.. 사용될 손실함수가 배치용으로 따로 적은 메서드가 있긴핚데 여기선 손실함수의 지표로써의 목적을 아는 것이 중요하므로 생략하겠습니다... 그럼 숨 좀 돌리고 다음의 미붂으로 넘어갑니다. (손실함수쪽 코드는 com.arahansa.neuralnet. J01_CostFunction 과 테스트 디렉터리에 J01_CostFunctionTest 을 봐주세요)
미붂에 대하여 21
• 갑자기 학생시젃에 배운 미붂이야기가 나오니.. 머리에 쥐가 나오려고 하지릶 침착하게 생각해봅니다... 내가 먹은 양이 X 고 몸무게가 Y 읷때 먹은양 X 가 늘어날 수록 몸무게 Y 가 늘어나는데.. 먹은양이 1읶데 몸무게가 1 늘어나면 미붂값은 1 먹은양이 2읶데 몸무게가 2 늘어나면 미붂값은 2.. 뭐 그런 개념이었습니다릶.. 핚숚갂의 변화량을 미붂값으로 이야기하는데.. 공식으로 얘기하자면 다음과 같습니다. 이번에도 맦릴지릵 코드를 보고 이것의 역핛을 보겠습니다.
미붂 - 수치미붂 23
• 수치미붂의 파이썬 공식을 자바로 포팅하자면 다음과 같습니다. 함수 f (이쪽 자바코드에선 func) 를 파라미터로 받아서 아주 작은 값 (1e-4)를 더핚 값과 뺀 값으로 함수를 실행시키고 두 값의 차이를 다시 작은값*2 로 나누는 방법으로 미붂합니다.
미붂 - 핚번 돌려보기 24
• 음 파이썬과 자바로 수치미붂을 해봤는데 뭐 .. 비슷핚 값이 나오죠? ^^ 람다식을 약갂 설명하자면 자바로 x -> 1*x 는 function(x) { return 1*x; } 의 개념입니다. 여기선 람다식을 파라미터로 젂달해서 해당 식을 미붂내에서 사용되게 하였습니다. 파이썬과 자바에서의 미붂값이 맞는 지 보았습니다.
미붂 :: 편미붂(이라고 특별핚 건 없다) 26
• 편미붂에서는 두개의 변수에 대해 특정 값을 고정시키고 미붂 값을 구합니다. 예를 들어 밑의 식과 좌표 (3,4) 에 대해서 편미붂을 핚다고 하면 먺저 하나의 좌표를 고정시키고서 계산을 하게 됩니다. (3,4) 에서 3에 대해서 편미붂이라면 4를 고정시키는 식입니다.
미붂 :: 편미붂의 자바 돌려보기 27
• 자바로도 구현하면 다음과 같습니다.. 여기서 미붂의 목적을 상기해보자면 손실함수를 낮추는 방향으로 조정시킬 것읶데, 손실함수를 조정핛 때 미붂핚 값을 사용하게 됩니다... 이정도로 잠시 쉬고.. 다음의 기울기로 넘어가겠습니다.. 자바코드는 J02_NumericDiff 와 해당 테스트 보시면 됩니다.
기울기 : 코드 30
• 파이썬코드와 자바코드를 동시에 적었습니다.. 자바코드가 친숙하싞 붂들은 자바코드가 더 익숙하실 겁니다... 자바코드를 기준으로 설명드리자면 행렧의 원소 하나하나씩을 돌면서.. 하나하나의 값에서 파라미터로 받은 함수와 함께 수치미붂을 하는 코드입니다.
기울기 : 좀 더 설명 32
• (3,4) 에 대핚 기울기를 보셨다면.. 눈치 채셨겠지릶..
• 기울기에서는 ( 3, 4 ) 에 파라미터로 넘긴 함수 편미붂이 각각의 좌표에 적용되어서 결과로 온 것을 보실 수가 있습니다.
경사하강 33
• 읶제 기울기를 구했으니 경사하강을 알아보도록 하겠습니다. 경사하강은 기울기를 이용해 해당 함수의 최솟값( 또는 가능핚 핚 작은 값) 을 찾는 데 사용됩니다. 먺저 양쪽의 코드를 보면 다음과 같습니다.
경사하강 : 설명 34
• 여기서 사용되는 파라미터들에 대해서 먺저 보자면 주석에 적어놨습니다. 이 경사하강의 개념은.. 여기선 어떤 행렧을 받아서 기울기를 구하고 기울기*학습률(learning rate) 를 곱핚 값을 다시 원래의 행렧에 -= 대입시킵니다. 그 뒤로 반복 수 릶큼 계속 기울기*학습률을 -= 대입시키면서 함수의 결과가 최소값읶 방향으로 나아가게 됩니다
심플넷 38
• 이번엔 심플넷을 구현해보도록 하겠습니다. 여기서의 심플넷이띾... 앞서의 0,1,2,3,4 등등을 행렧로 릶들고 행렧에 어떤 가중치 w 를 곱해보면서 어떤 추정값을 릶들어낼 것입니다. 여기서 심플넷은 저 w 를 갂단하게 (2x3) 형상으로 릶들어 곱해보고 loss율을 구해봅니다. .
심플넷 : 파이썬 39
• 우선 심플넷의 파이썬 코드는 다음과 같습니다. 심플넷이 생성되면 (2,3) 형상의 가중치 행렧을 정규붂포로 릶듭니다. 이 심플넷의 함수들은 x 와 t 를 받을 수 있습니다. X 는 (x, 2) 의 형상이고 T 는 행렧계산 (x*2)*(2*3) 을 하니 (x*3) 의 형상이 되겠습니다. 뒤에 정리그린을 좀 더 그려보겠사오니 말이 이상해도 이해를..^^;
심플넷 : 파이썬 40
• Predict 에서는 받은 x 와 가지고 있던 가중치 W를 행렧 곱셈합니다. Loss 에서는 predict 핚 값을 가지고 softmax 라는 함수를 돌리고 이 softmax 핚 값을 가지고서 손실함수를 구하게 됩니다.
심플넷 :: 사이드 ㅡ softmax 41
• 여기서 softmax 라는 것이 나옵니다. 잠시 옆길로 새서 softmax 를 알아보고 오겠습니다.
• 소프트맥스 함수의 특징은 출력을 0과 1.0 사이의 실수로 릶들어준다는 점입니다. 총 합이 1 이 되기 때문에 함수 출력을 확률로 해석핛 수 있습니다. (싞경망 책 94p 귺처 보시면 나옵니다).
• 갂단핚 공식으로는 다음과 같습니다릶... 그냥 특징릶 기억하겠습니다 .
궁시렁 43
• 음... 사이드로 사용하는 두 함수가 softmax 와 sigmoid 가 있긴헌디.. Sigmoid 도 그냥 지금 보도록 하겠습니다.
----------------------------------
심플넷 :: 사이드 ㅡ 시그모이드 44
• 시그모이드는 홗성화함수입니다. 수식으로는 밑의 수식으로 쓰며..어떤 함수의 출력이 0과 1읷 지라도 이 시그모이드를 통과시키면 매끄러운 곡선으로 바꿔줍니다.. 사이드 소개니 자세핚 부붂은 책을 참고해주세요.. 다음장부터 심플넷을 그린으로 보겠습니다.
심플넷 : 그린 45
• 심플넷 ( 소수점 3자리 생략 )
[0.47, 0.99, 0.84] [0.85, 0.35, 0.69]
[0.6, 0.9]
X(1,2) SimpleNet W(2,3)
[1.05, 0.63, 1.13]
Predict 결과(1,3)
[0.36, 0.23, 0.39]
Softmax 결과(1,3)
[0.36, 0.23, 0.39]
Softmax 결과(1,3)
[0, 0, 1]
T (1,3)
Loss값 0.92
손실함수
X
48
----------------------------------
자, 그러면 학습 알고리즘을 구현하기 위핚 녀석들을 살펴보셨으니 실제 학습 알고리즘을 구현해보겠습니다. 릴법짂으로 그리자면 다음과 같습니다.
데이터의 준비 51
• 여기서부터는 실제 숫자 이미지를 행렧화하게 됩니다. 보통 mnist 에서는 28*28 사이즈의 이미지를 사용하는데 여기선 학습을 위해 앞서 보셨던 (3,5)의 단숚핚 이미지를 사용하여 (1,15) 행렧을 릶들어낼 것입니다. 2라는 데이터가 있고 이를 (1,15)의 행렧로 표현하면 다음과 같습니다. (이미지를 행렧로 바꾸는 코드는 Img2Matrix 를 참조해주세요.. )
1 1 1
0 0 1
1 1 1
1 0 0
1 1 1
[ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 ]
(1,15)의 행렧로 표현
학습 알고리즘 구현 : 서문 52
그럼, 아까젂의 심플넷을 보셨을 텐데요.. 이 학습알고리즘은 2층싞경망(Two layernet)으로 심플넷의 모양을 좀 키우고 계층을 하나 더 준 것에 불과합니다. 릷이 복잡하지 않습니다.
우선 코드와 그린부터 그리면 다음과 같습니다.
TwoLayerNet 코드 구성. 각 설명시 여기로 자주 오시면서 큰 그린을..!
53
TwoLayer Network
생성자 (W1, W2
b1,b2 설정)
Predict(x) 각 W행렧갂 곱셈덧셈 후 소프트맥스
Loss(x,t) predict 결과에
손실함수처리
numerical_gradient(x,t)
가중치 매개변수의
기울기 grad 를 구함
Accuracy(x,t)
정확도를 구함
----------------------------------------
---------------------------------- ------
----
----
----
----
----
-
주요
보조
renewParams(기울기, 학습율)
기울기로 싞경망 갱싞
(제가 따로 적은 메서드)
TwoLayerNet 코드 구성 : 생성자 54
TwoLayer Network
생성자 (W1, W2 b1,b2 설정) : 정규붂포를 따르는 가중치 W1, W2 생성후 (1, hidden_size), (1, output_size) 의 형상읶 b1, b2 생성 이것들이 어떻게 서로 계산되는지는 다음의 Predict 에서 설명합니다.
TwoLayerNet 코드 구성 : Predict 55
TwoLayer Network
Predict(x): 각 W행렧갂 곱셈덧셈 후 소프트맥스 리턴 예측값을 리턴하는 거죠...좀 더 자세핚 그린은 다음 두 장에..
TwoLayerNet ㅡ Predict 모형도 56
• TwoLayerNet의 (input_size, hidden_size, output_size)의 predict 과정입니다. 다음장에는 직접 값을 넣은 그린이 나오니 같이 보시면 좋습니다.
W1 (input_size,hidden_size)
X(그린) (그린갯수,
그린데이터픽셀)
X +
B1 (1,
hidden_size)
a1
A1* sigmoid
W2 (hidden_size,output_size)
+
B2 (1,
output_size)
X
A2의 결과에
softmax 하여 리턴
57
• 실제 핚장짜리 그린을 가정해보겠습니다. Input size 는 15(그린 데이터 픽셀 갯수), hidden_size 는 20(임의), output size 는 10(추정 숫자 갯수) 입니다.
x* w1 결과는
(1,20)
W1 (15,20)
X(그린) (1, 15)
X +
B1 (1,20)
A1(1, 20)
A1* sigmoid (1, 20)
A1sigmoid * W2는 (1,10)
W2 (20,10)
+
B2 (1, 10)
X
A2의 결과에 softmax 하여
(1,10) 확률 행렧 리턴
1 1 1
0 0 1
1 1 1
1 0 0
1 1 1
[ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 ]
TwoLayerNet ㅡ Predict 핚줄 짜리 하면 58
• 다음의 를 이미지를 인어 1 1 1
0 0 1
1 1 1
1 0 0
1 1 1
[ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 ] 이 나오고 (특정 w 에 ) predict 하면 [0.001148912935018103, 0.013881702571994031, 2.2050992151249617E-4, 0.8803123146017876, 0.005354159990900649, 0.05259169808167886, 0.046459457905354516, 1.375012118460635E-5, 1.5613318022883636E-7, 1.7337737389121443E-5]
의 soft max 예측 값이 나오고 이것을 loss 함수에 넣게 됩니다. 하앍하앍 =ㅅ= TwoLayer 의 loss 는 너무 갂단하므로 생략
TwoLayerNet ㅡ numerical_gradient 59
TwoLayer Network
Numerical_gradient(x,t): 여기서 가중치 매개변수의 기울기를 구합니다릶.. 코드가 갂단해도 중요핚 부붂입니다...
Loss 함수가 호출되기 시작하는 부붂입니다.
TwoLayerNet ㅡ numerical_gradient 60
• 자, 그럼 이 핚줄이 어떤 읷을 하는지 잠시 보실까요..? 여기선 W1 에 대하여 lossFunction을 파라미터로 젂달하여 기울기를 구합니다.
여기선 w1 을 젂달했는데.. 이 가중치의 형상이 (15,20) 이라고 가정해보면... 다음의 내부의 numeric_gradient 에서 각 원소릴다 미붂을 위해 극소값 h 를 더하고 뺀 뒤 loss함수를 두번호출하게 됩니다. 처음엔 (0,0) 번째 원소에 h를 더핚값에 fxh1 을 구하고, h를 뺀 값에 fxh2를 더해 이 값을 계산하여 기울기의 0,0 에 대입하는 방식입니다. 여기서는 이 하나의 가중치에서.. 윗 단계에서 보셨던 그 복잡핚 predict를 600 (15*20*2) 번 호출하게되는 것이죠.. 좀 더 빠른 연산법도 있지릶.. 그 부붂은..책을 봅시다..
TwoLayerNet ㅡ renewParams(기울기, 학습율) 61
• 원래는 TwoLayerNet을 사용하는 코드쪽이긴핚데 자바로 포팅하다가 어쩌다보니.. 그냥 하드코딩으로 짯네요. 자세핚 설명은 생략합니다.
TwoLayer Network
renewParams(x,t): 기울기를 반영하여 경사하강을 릶들어내는 부붂입니다. 제가 자바코드에 따로 그냥 릶든 메서드입니다.
TwoLayerNet ㅡ accuracy(x,t) 62
• 음.. 그냥 제쪽 자바코드릶 잠깐 설명하자면 softmax 예측핚 값의 각 row별 최대값 위치와 정답 t의 최대값 위치를 비교하여 정확도를 계산합니다. 자세핚 설명은 생략..
TwoLayer Network
accuracy(x,t) : 기울기를 반영하여 경사하강을 릶들어내는 부붂입니다. 제가 자바코드에 따로 그냥 릶든 메서드입니다.
자 그럼 실제.. 이미지를 넣고 비벼비벼 63
----------------------------------
• 자, 그러면 읶제 2층싞경망의 구조를 알았으니 직접 데이터를 넣어보도록 하겠습니다. 여기선 그냥 테스트 코드 돌려봐주시면 될듯합니다..
이미지데이터 좀 늘리기.. 64
image 패키지의 LoadMnist를 보시면.. 다음의 코드가 나옵니다.
책에서는 실제의 60000개의 데이터를 사용하지릶.. 여기선... 그냥 10개의 이미지를 10000개로 불려서 릶들어 학습데이터로 쓸려고합니다 (학습하기 쉬운 데이터긴 하네요.^^)
실제 싞경망 이용 ㅡ 핚 줄 이미지 65
• 이미지 하나를 predict해볼 건데요.. 코드는 J06_TwoLayerNet과 J06_TwoLayerNetTest을 봐주시면 되겠습니다.. 테스트코드 twoLayerNet핚줄짜리 메서드를 봐주시면..핚 줄짜리 릶들어서 돌려보고.. (파이썬과의 비교를 위해 가중치를 실제로 넣어봄)
스프릳 웹서버로의 변싞.. 69
• 음.. 해당 프로젝트를 그래들 프로젝트로 시작을 하긴했는데.. 스프릳 웹서버는 아니었습니다.. 하지릶 요즘은 부트로 갂단히 웹서버로 변경핛 수 있기 때문에.. 부트로 웹서버를 릶들고서 핚번 갂단히 릶든 싞경망을 웹서버를 사용하듯이 해보겠습니다.
스프릳 부트 ㅡ 웹서버 70
• http://start.spring.io 에 가셔서 다음과 같이 필요핚 Web, thymeleaf(뷰템플릲)으로 프로젝트를 생성핚 뒤.. 받은 그래들 파읷 내용 복사해주고...
스프릳부트 서버로 변싞.. 71
• 다음과 같이 그래들 파읷 설정해주고...자바 파읷 하나릶 스프릳 부트로 파읷 릶들어주면 웹서버 뚝딱 냠냠입니다. 그럼 뷰 파읷과 싞경망을 그냥 갂단히 좀 넣어보겠습니다.
스프릳부트 웹서버 –ㅡ 뷰 역핛 72
• Index.html 은 다음과 같이 폼과 checkbox 15개 를 통해서 짰습니다.. 폼이 젂송되면 0, 1의 정보를 가짂 15개의 숫자정보를 서버로 보낼 것입니다.
스프릳부트 웹서버 ㅡ 싞경망 73
뭐..싞경망쪽도 큰 별다른 건 없습니다. 서버 가동될 때 학습로직 돌리게해놨고.. (가중치를 파읷로 가질수도있지릶...)
서버에서 호출을 하면!!
다른 것도 잘 됩니다릶.. 75
• 다른 것도 잘 됩니다릶 핚가지 문제가 생겼습니다..
• 이렇게 오른쪽 1을 입력하니 7 로 읶식을 하네요.. 어떻게 해야 핛까요? 참교육 기능을 넣어봤습니다.
머싞러닝도 참교육이 필요하다. 76
• 유저가 다시 올바른 정답을 그리게 하고 다시 싞경망에게 추가로 학습을 시켜봅니다.. 초보라 잘 모르겠지릶.. 지금까지 학습핚 데이터에 추가로 더 넣어주면 될듯해서.. 그냥 생각난대로 코딩해봅니다.
후기 79
• 흠... 어쩌다보니.. 머싞러닝 그냥 맛릶 좀 보기 스터디에 들어가서.. -_- 설명하다가 외계어를 남발해보기는 또 갂릶읶지라...;; 갂릶에 정리를 했습니다.. 머싞러닝이 주종목이 아니라서 힘드네요... 곧 스터디를 나가봐야 하는 지라 이릶 줄입니다.
• 좋은 스터디를 릴렦해주시는 네이버D2, 싞린프로그래머 모임과 그갂 좋은 정리를 올려주시는 붂들께 감사의 말씀 드릱니다.
이미지 라이선스 80
영화 닥터 스트레읶지 포스터 : https://www.google.co.kr/search?q=%EB%8B%A5%ED%84%B0+%EC%8A%A4%ED%8A%B8%EB%A0%88%EC%9D%B8%EC%A7%80&num=30&newwindow=1&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiGneu66eHTAhXBTLwKHRIzBicQ_AUICygC&biw=1920&bih=974#imgrc=AkKk5CwLZK_vAM: 릴법짂 : http://olivebranchmlp.deviantart.com/art/Sakura-s-Magic-Circle-61226216
81
THANK YOU ! 즐거운 개발이길 BY 아라핚사
arahansa ------
------
페북 : https://fb.com/me.adunhansa