티스토리 뷰



세미나에서 여러 팀이 발표할때 발표의 구조는 대략 비슷했다.


1. Motivation

- 나는 이걸 평소에 하고있었는데 이게 궁금해졌다.

2. Model

- 이를 모델링하기 위해 나는 RNN을 썼다 or DNN? CNN을 썼다.

3. 학습 Struggling 

- 이를 학습을 1주일시키고 했던 결과는 이렇고 그래서 모델을 바꿨다.. 혹은 학습을 더 시켰더니 이렇게 변했다.

4. 결과

- Heres our masterpiece...

- Please visit our git page.



보통 이런 구조로 얘기가 흘러간다.


그런데 여기서 확 짜증이 나는 포인트는 

2. 모델링 부터다.


우선 내가 RNN, CNN, DNN이게 뭔지 몰랐다.


대부분 발표팀이 RNN을 썼던건 기억나는데 그게 나오고나서 바로 모델을 짠 수학공식이 나온다.


여기서부터 멘붕이 왔기때문에 이부분부터 정복해 나가기로 한다.



우선 CNN RNN DNN은 Wikipedia 문서 중 Deeplearning 파트에서 찾을 수 있다.


일단 출발자체가 DL까지 진출했다는건 알 수 있다.

이제 각각이 무엇인지 학습해본다.


우선 뒤에 붙는 NN은 Neural Network라는뜻이다.

신 경 망


ANN이 단어의 출발이다 Artificial Neural Network ANN

DNN은 Deep Neural Network DNN



일단 인공신경망부터 정복하고 간다.


인공신경망(人工神經網, 영어: artificial neural network, ANN)은 기계학습과 인지과학에서 생물학의 신경망(동물의 중추신경계중 특히 )에서 영감을 얻은 통계학적 학습 알고리즘이다. 인공신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다. 좁은 의미에서는 오차역전파법을 이용한 다층 퍼셉트론을 가리키는 경우도 있지만, 이것은 잘못된 용법으로, 인공신경망은 이에 국한되지 않는다.


뇌를 따라한 인간이 만든 "통계학적 학습 알고리즘"

인간은 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜 문제 해결 능력을 갖게 된다.

이걸... 따라해서 입력과 출력 사이에 여러 개의 인공 막? layer?를 만들어두고 like 시넵스  (인공뉴런) 이 결합 세기를 갖고있고 이를 통해 문제 해결 능력을 갖게 되는걸 ANN이라고 부른다.



올ㅋ


혼란이온다

이걸 읽고 딥러닝으로돌아왔는데

DNN은 ANN에서 입력과 출력 사이에 여러 개의 Hidden Layer로 이뤄진 ANN이라고 한다.


ANN을 다시 이해해야겠다.


 인공신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다.


핵심은 이렇다. 시냅스 즉 인공뉴런들의 조합으로 만들어진 신경망 조직을 ANN이라고 부르고 DNN은 입력과 출력 사이에 Hidden Layer를 사용한 방식을 얘기하는거 같다.


그니까 여러 Layer 혹은 시냅스 혹은 인공뉴런들이 Connection을 갖고있고 그걸통해 문제를 해결하면 ANN인거다.


자 그럼이제 CNN


Convolutional Neural Network

합성곱???



티스토리 딥빡... 사진도 못올리게해 사진업로더를 왜 플래시로만드냐 ㅡㅡ...


여튼 Convolutional은 소용돌이치는 나선의.. 이런뜻이다.


CNN은 다계층 Perceptrons의 한 종류이다.

대박 이제 가닥이 나온다.



각 노드의 가중치를 곱하든 더하든 어떻게 해서 맞으면 1 틀리면 -1을 리턴하는 인공신경망 이름이 퍼셉트론이다.

CNN은 그 중 하나인데

CNN은 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 CNN은 2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 다른 딥 러닝 구조들과 비교해서, CNN은 영상, 음성 분야 모두에서 좋은 성능을 보여준다. 


CNN은 하나또는 여러개의 합성곱 layer가 있고 최소한의 전처리를 하도록 설계되어 있다고 한다.

자세한 내용은 관심이 없고 얘들은 2D형태의 데이터 처리에 효과적이며 쉽게 훈련되고 적은 수의 매개변수를 사용한다고 한다.


뭐 그렇다고 하는군.. 괜찮은 ANN인가봐


자 그럼이제 다음 RNN

Recurrent neural network

순환 신경망

이놈의 특징은 아래와 같다고 한다

순환 신경망은 앞먹임 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다. 이러한 특성에 의해 순환 신경망은 필기체 인식(Handwriting recognition)과 같은 분야에 활용되고 있고, 높은 인식률을 나타낸다


그니까... 재귀함수처럼 얘는 인풋이 아웃풋으로 갈때 그냥 쭉쭉 가고 끝나는게아니라

지네들이 계산을 할때도 내부에있는 뉴런을 사용할 수 있다는 점이 특징인거 같다.

이야 이제 좀 인공신경망 인공지능 같아지네


좀더읽어보자.

순환 신경망을 구성할 수 있는 구조에는 여러가지 방식이 사용되고 있다. 완전 순환망(Fully Recurrent Network), Hopfield Network, Elman Network, Echo state network(ESN), Long short term memory network(LSTM), Bi-directional RNN, Continuous-time RNN(CTRNN), Hierarchical RNN, Second Order RNN 등이 대표적인 예이다. 순환 신경망을 훈련(Training)시키기 위해 대표적으로 경사 하강법, Hessian Free Optimization, Global Optimization Methods 방식이 쓰이고 있다. 하지만 순환 신경망은 많은 수의 뉴런 유닛이나 많은 수의 입력 유닛이 있는 경우에 훈련이 쉽지 않은 스케일링 이슈를 가지고있다.



여러 종류가 있다는거같고 훈련이 쉽지않은 이슈가 있는데 이걸 응용한 ESN, CTRNN, HRNN SORNN, 등등 재귀호출을 하는 신경망 모델이 이 분야에 많은것으로 보인다.


이 뒤에 제한 볼츠만 머신 (RBM), 심층 신뢰 신경망 (DBN), 심층 Q 네트워크  등이 있는데

난 이정도만 알고있으면 될거같다.



RNN CNN 얘기는 여기서 마무리하고 다음 학습을 이어가도록 한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
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
글 보관함