블로그 이미지
윤영식
Full Stacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

2018. 10. 18. 14:52 AI Deep Learning

네패스의 뉴로모픽 인공신경망 장비를 통한 실습 워크샵 내용을 정리한다. RBF 알고리즘을 사용하는 칩이다. 




Radial Bassis Function (RBF)

중심점으로부터 일정한 거리에 있는 데이터만 골라낸다. 거리에 대한 정보를 끄집에 내는게 중점이다. 

  - 거리를 표한하는 법은 가우시안 분포(정규분포)를 사용한다

  - 가우시안 함수를 여러개 중첩시켜 다양한 함수(=인공지능)를 만들 수 있다. 

  - 입력: 특징정보를 준다.

  - 네패스 칩은 하나의 가우시안 칩으로 중첩해서 사용할 수 있다.





뉴로모픽 NM500



  - 576개의 뉴론이 있다.

  - 각 뉴론은 독립적으로 작동한다. 

  - 실시간으로 학습하고 모델을 만들어 낼 수 있다. 

  - 전처리된 feature를 넣어주어야 RBF를 통해 처리를 할 수 있다. 모든 것을 다 해주는 것은 아니다. 

  - 디지털화 가능한 모든 데이터 입력은 가능하다. 

  - 학습된 뉴런들만 작동한다. 

  

사용예

  - 라켓에 칩을 붙여서 스윙의 괘적이 잘 되고 있는지 알려준다. 

  - 어선에서 잡은 물고기중에서 원하는 것만을 골라냄 

  - 칩하나로 할 수 있는것

   + Fish sorting: 200 뉴런 사용

   + Glass Inspection: 유리의 이물질 발견 - 800 뉴런 사용

   + Motion classification: 움직임 괘적 추적 - 128 뉴런 사용




NM500 뉴런


뉴론안에 context끼리 서로 맞아야 연결된다. 네트워크를 구분하는 용도로 사용한다. 예로 얼굴인식이면 얼굴인식 뉴런끼리 연결되도록 한다.

Active Influence field 값이 학습을 진행하면서 정교하게 정해진다.

DEG (DeGenerate Flag)은 Minimum Influence Filed이하로 내려가면 작동한다.

Difference(차이) 절대값은 L1, Lsup을 사용한다. 





Knowledge Studio를 통한 실습


이미지에 대해 학습을 하고 딕텍션을 할 수 있다. 

  - context를 만든다.

  - 이미지를 선택한다. 

  - 이미지에 ROI라는 사이즈를 만들어 Full scan 학습을 한다.

  - 디텍션으로 가서 학습시킨 이미지를 찾거나, novelty를 선택하여 이전 이미지와 차이가 나는 부분을 찾는다. 


예) 100원 동전이 없는 이미지를 context 100사이즈, ROI w/h = 80, stride = 80으로 학습을 하고, 100원 동전이 있는 이미지로 교체후 디덱션을 해서 이전 이미지와 틀린 부분이 무엇인지 찾는다. 



참조

  - 제너럴비젼사와 MOU하여 뉴로모픽 NM500을 만든 것임

  - 확률 가우시안이란



posted by 윤영식
2018. 7. 31. 15:25 AI Deep Learning

인공지능 공부하기 위한 여정을 정리하고 계속 업데이트 한다.  하루에 2시간 이상 꼭 공부를 해야 강좌를 완료할 수 있다. 





Machine Learning & Deep Learning


김성훈 교수님의 인프런 강좌

   - 모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌

   - 모두를 위한 딥러닝 - Deep Reinforcement Learning



앤드류응 교수님의 코세라 강좌

   - 머신러닝



머신러닝 Engineer 학습경로

 Machine Learning Engineer 커리큘럼


    + Supervised Learning: Hypothesis  set <-> DAG (비순환 그래프)를 만드는 과정
    + Disttribution: Binary classification (이진분류), Multicase classification (다중 분류), Linear regression (선형 회귀), Multimodal linear regression (다항 회귀)


  - 테리님 왈 다음과 같은 과정으로 공부하길 추천함
   <초급>
    - 조대협님의 머신러닝 블로그글 (내가 추가한 것임)
   <중급>


T 아카데미의 인공지능 강좌

   - 인공지능을 위한 머신러닝 알고리즘

     + 김성훈 & 앤드류응 교수님의 강좌수강 후 개념 정리용 (단, 수학공식이 많이 나옴, 수학방을 이용하자)

     + 설명중 회귀 모델에 대한 보다 자세한 설명

     + 설명중 우도(가능도-Likelihood) 자세한 설명



Microsoft의 데이터 과학 전문 프로그램

  - 필수 과목 11개

  - 과정당 12시간: 하루 2시간 계산하면 과정당 1주가 걸림 -> 총 11주 프로그램     

  - 필요한 것을 선별해서 보면 좋을 듯함.




Interactive Data


Python 배우기

  - T 아카데미의 Python 프로그래밍: 파이썬 3 기반 기초 

  - T 아카데미의 Python을 활용한 데이터분석 기초: Jupyter Notebook기반으로 Pandas, Seaborn 실습

  - T 아카데미의 Python을 이용한 데이터분석 실습

  - Edwith의 머신러닝을 위한 Python



Tensorflow 배우기 

  - Tensorflow 공식 홈페이지

  - 골빈해커의 텐서플로우 강좌

  - 이찬우님의 텐서플로우 유튜브 강좌

  - Tensorflow로 MNIST 실습 SlideShare



CNN 이해

  - 초보자가 이해하기 좋은 CNN 이해 SlideShare

  - CNN 스탠포드 강좌 - CS231n



RNN 이해

  - 초보자가 이해하기 좋은 CNN, RNN 이해 SlideShare

  - RNN LSTM 이해 - Colah




용어 이해

 - Softmax 이해

 - Activation Function 이해

 - Back Propagation 이해. 수식으로 설명, 코드로 설명

 - ReLu 이해: 역전파의 오류 방지

 - 알고리즘 복잡도 이해 - Big O == "최악의 경우(시간복잡도가 클 경우)에도 이 시간 정도면 된다" 라는 의미

 - Log 함수 이해

 - tanh 이해

 - LSTM 이해




To be continued... 


사실 계속 공부해도 감 잡기는 정말 힘들다. 프로젝트를 해봐야 뭐라도 하나 잡고 갈듯하다. 




<참조>

- 인공지능과 머신러닝 학습 경로

테리님 블로그

조대협님 블로그

- 조경현 교수님의 뉴욕댁 머신러닝 강좌 소개소스

- 조경현 교수님이 참조하였다는 머신러닝의 강의 자료

- 시그모이드 함수 설명

- Activation Function 설명

- 역전파(Backpropagation) 설명, 잘 이해해야 함 (Adnrej Karpathy), Andrej의 RNN 이야기

- 로그함수 설명

- 수학방로그함수 좀더 기초적 설명

- 수학 기호 명칭 - 수식을 볼려면 기호의 의미를 알아야 한다.

- 미분에 대한 쉬운 이해

- MNIST - yann.lecun.com

posted by 윤영식

Tensorflow Manipulation 강좌를 정리한다.





Array


- rank, shape, axis을 array로 나타냄.

- [-1] array의 마지막 item

- t[2:5] index 3부터 5까지 items

- t[:2] 처음부터 index 2까지 

- t[3:] index 3에서 끝까지 


[1,2,3] rank(1), shape(3)

[[1,2],[3,4]] rank(2), shape(2,2)


axis=0 가장 바깥쪽, axis=-1 가장 안쪽을 표현하고 axis을 통해 shape을 이동한다. 







Matrix Manipulation


matmul


matrix 곱은 반드시 matmul을 사용한다. 

- tf.matmul((2,2) , (2,1)) => (2,1)




broadcasting


matrix끼리 shape이 다르더라도 matrix끼리 연산을 가능토록 shape을 자동으로 맞춰준다. 잘 알고 사용하면 좋지만 조심해라. 



reduce_mean 


(평균) 호출시 입력값들의 type에 주의한다.


axis를 0 이냐 1 이냐에 따라 다른다.

>>> import tensorflow as tf

>>> sess = tf.Session()

>>> sess.run(tf.global_variables_initializer())

>>> x = [[1.,2.],[3.,4.]]

>>> tf.reduce_mean(x).eval(session=sess)

2.5


>>> tf.reduce_mean(x, axis=1).eval(session=sess)

array([1.5, 3.5], dtype=float32)



reduce_sum 


axis=-1  제일 안쪽값을 합치고 이에 대한 평균을 낸다. 



argmax


큰값이 있는 위치 index를 구하는 것이다. 



reshape


주로 (...., z) 가장 안쪽에 있는 z 값은 그대로 가져가고, 앞의 것을 reshape한다.



reshape 하나의 형태 sqeeze는 펴주는 역할, expand_dims 차원을 더 추가할 경우 




One Hot 


가장 큰 값이 있는 곳을 1로 하고 나머지는 0으로 바꿈. One hot을 하면 dimension (rank)가 하나 더 생기므로 다시 reshape을 한다. 

마지막 3만 남기고 나머지는 차원 1로 만들어주는 것 



Casting


타입 바꿔주기 



Stack


쌓기를 만들어줌. 주어진 데이터들에서 axis와 stack을 이용해 새로운 matrix를 만듦



Ones and Zeros like


가지고 있는 shape과 똑같은 0 또는 1로 채워진 shape을 만들때 사용



Zip


복수의 tensor를 한방에 처리하기 





참조


- 김성훈교수님의 Tensorflow Manipulation 강좌

- reduce_sum reduce_mean 사용법

posted by 윤영식
prev 1 next