뉴스: 새로운 블로그 오픈

상념 2018. 10. 3. 04:54

 

이번학기(2018년 가을학기) UST 에서 "[UST-15984] 딥러닝 기술 및 응용" 전공 강의를 하게되면서 강의 내용 및 강의 자료등을 학생들과 공유하기 위한 블로그를 새로 오픈 하였다. 

 

새로운 블로그 위치 : 

https://ust-15984.tistory.com

 

이 블로그를 통해 강의 슬라이드와 실습때 사용한 예제 소스 파일들도 같이 공유가 되니 딥러닝에 대해  공부를 시작해보고자 하는 사람들은 한번씩 방문 해봐도 좋을듯. 

이번 강의의 목표는 데이터분석 전문가를 위한 딥러닝 강의로서 텍스트 등 자연어 분석 분야에서의 딥러닝 기술을 많이 다룰 예정이며 전산 비전공자도 이해하기 쉽도록 최대한 쉽고 필수적이며 실용적인 내용만을 강의할 예정이다.

 

 

posted by Dr.Deeeep

Sequence classification의 어려운점

카테고리 없음 2016. 10. 10. 09:44

치매 뇌파 분석과 같이 시계열 데이터를 분석함에 있어서의 어려운 점을 정리해 보자.

 

- 입력 데이터가 길고 길이가 일정하지 않을 수 있다.

- 입력 심볼의 다양성. 입력 신호를 어떤 단위화된 심볼로 본다면 그 다양성이 매우 크다. 심볼의 크기도 시간 단위, 혹은 윈도우 크기,를 무엇으로 정하냐에 따라 너무 많은 심볼이 가능. 뇌파와 같이 실수 단위의 데이터라면. gg

- 긴 시간동안의 context 학습 필요

- 심볼간의 dependency도 학습 필요. 어떠한 심볼들의 순차적 출현이 중요한 패턴일지 학습해야 하므로 꼭 학습 필요. (contextual information, contextual dependency, .. 등등의 용어, spatial relationship)

- 계속

posted by Dr.Deeeep

딥러닝에서 Epoch의 중요성

상념 2016. 9. 29. 08:40

 

 

 

 

epoch는 전체 데이터에 대한 한번의 학습(forward 와 backward 포함)을 의미. 네트웍의 웨이트는 학습 시작시 초기값이 무엇이냐에 따라 학습 결과가 다르므로 매 epoch시마다 weight값이 수정되도록 한다면 매번 학습을 수행할때마다 전체 네트웍의 포텐셜이 달라짐. 그러나 항상 포지티브하게 달라짐을 보장할 수는 없으므로 매번 sum of loss 곡선을 확인 하면서 적당한 epoch의 수를 결정하는 것이 좋겠음.

batch size 한번의 학습시 사용되는 데이터의 수로 전체 데이터의 수보다 작거나 같음. batch size가 학습 효율에 어떤 영향을 끼칠지는 연구해봐야 하지만 큰 영향이 없을 것 같음(citation needed). 단지 사용하는 메모리의 문제일듯(?) [수정] 학습되는 모델의 성능으로의 영향보다는 학습 속도와 학습 효율에 영향을 줌. 한번의 batch 내에서의 학습된 내용은 batch 종료시까지 네트워크에 반영이 되지 않기 때문임. 따라서 학습 초기에는 적은 batch size로 빈번히 업데이트 해주고 학습 후기로 갈 수록 batch size를 크게 잡아주는 것이 효율적이지 않을까 생각됨. [여기까지 수정]

iteration은 정해진 batch size를 이용하여 학습(forward + backward)를 반복하는 횟수로 epoch와는 다른 의미. 한번의 epoch를 위해 수번의 iteration이 필요.

 

epoch는 학습 결과가 포지티브한 방향성이 관찰된다면 높은수를 정해줄 수록 좋은 결과를 얻을 수 있기 때문에 딥러닝에 좋은 하드웨어가 필요한 이유임. 그러나 높은 epoch는 데이터 자체를 머신에 학습시키는 것이므로 오버피팅의 문제가 있음. 적절한 epoch와 overfitting을 피하기 위한 기술 적용 필요.

posted by Dr.Deeeep

Common deep learning predictive modeling problem types

상념 2016. 9. 13. 17:24

 

딥러닝에서의 예측 모델링 문제

 

크게 세가지 타입이 있다.

 

1. Regression

예측값을 얻기 위한 문제로 원하는 예측값의 수만큼의 출력 노드 사용

loss function으로 mean squared error or 'mse' 사용

예: 다음 단계 뇌파 전압, 다음 순간 주가, 내일의 기온, 지진 피해 예상액등

 

2. Binary Classification

yes 냐 no냐를 분리하는 문제로 한개의 출력 노드 필요

loss function으로 logarithmic loss, a.k.a cross entropy or 'binary_crossentropy'

예: 조기 치매인가 정상인가? 주가가 오를것인가 내릴것인가? 지진 피해액이 특정 금액보다 클것인가 작을 것인가?

 

3. Multiclass Classification

여러개의 클래쓰로 분류하는 문제로 분류하는 클래스의 총 수만큼의 출력 노드 사용

loss function으로 multiclass logarithmic loss or 'categorical_crossentro

예: 치매 환자의 종류 분류 (혈관성 치매, 알츠하이머, 파킨슨, ... ), 치매의 진행 단계 분류 (MCI, 경증 치매, 중증 치매, ... ), 주식 종목을 정해진 클래스로 분류 (관심주지 말아야 할 종목, 관찰 종목, 관찰 후 매수 종목, 반드시 매수 종목, 시장가 매수 종목, ... ) 

 

 

optimization algorithm으로는 일반적으로 sgd 이용.

많이 사용되는 optimization algorithms.

- stochastic gradient descent: 'sgd' requires the tuning of a learning rate and momentum

- ADAM: or 'adam' requires the tuning of learning rate

- RMSprop: or 'rmsprop' also requires the tuning of learning rate

 

 

 

 

 

 

 

 

 

 

 

 

 

posted by Dr.Deeeep

Time Series Prediction을 위한 Deep learning

 

이번 글에서는 주가 예측의 기본 개념인 time series prediction 을 딥러닝 기술로 구현하는 방법에 대해 알아보도록 하겠다.

 

 

위 그림은 구글 이미지 검색에서 time series prediction 으로 검색을 해서 찾아낸 그림 중 하나인데, 오늘 설명할 deep learning을 이용한 time series prediction의 개념을 쉽게 도식화 한 것이다.

time series 데이터란 시간 축에 따라 변하는 데이터를 (시간,값)의 형태로 쭉 기록한 데이터를 말하는데 주가 데이터, 뇌파 데이터, 기온 데이터 등이 이에 해당한다. 주가 데이터라면 x 축이 시간(월, 일, 주, 시, 초 등)이고 y 축이 주가 데이터(주가, 거래량, 변동률 등등)이 되겠다. 

time series prediction의 가장 대표적인 알로리즘은 일정 기간의 데이터를 관찰하고 바로 다음 순간의 값을 예측하는 것이다. 

 

 

<to be continued...>  

posted by Dr.Deeeep

동영상의 vectorizing은 어떻게 해야하나?

상념 2016. 8. 24. 02:30

치매 예측 딥러닝을 위한 뇌파 데이터의 분류는 생각의 꼬리를 이어 이어..

Time Series 뇌파 -> 2D image data -> serial images(frames) -> video 로 이어졌고.

결국 

problem of dementia prediction은 video understanding의 문제로 전환.

이제 뇌파 이미지를 동영상 변환 하는데까지는 어떻게 된거 같은데. 그렇다면 이제 동영상은 어떻게 vectorize 해야하는 걸까? canova javadoc에는 안나온다.

 

개별 프레임을 이미지로 추출하여... 그냥 나열한 후 vector 화? 이렇게 되면 전극간 spatial 정보를 학습하겠다던 애초 가설이 충족되지 않는다. 

 

구글링이 필요함.

posted by Dr.Deeeep