달력

05

« 2018/05 »

  •  
  •  
  • 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
  •  
  •  
2018.02.07 15:19

유용한 사이트 모음 Tech/머신러닝2018.02.07 15:19

유용한 사이트 모음 


유재준님 : http://jaejunyoo.blogspot.com/2018/02/minimizing-negative-log-likelihood-in-kor.html


음성합성 손석희 : https://carpedm20.github.io/tacotron/


음향인식기 : http://cscp2.sogang.ac.kr/CSE5311/index.php/Tensor_Flow%EB%A5%BC_%EC%9D%B4%EC%9A%A9%ED%95%9C_%EC%9D%8C%ED%96%A5%EC%9D%B8%EC%8B%9D%EA%B8%B0_%EC%A0%9C%EC%9E%91


이홍규님 강좌 : https://medium.com/mathpresso/mathpresso-%EB%A8%B8%EC%8B%A0-%EB%9F%AC%EB%8B%9D-%EC%8A%A4%ED%84%B0%EB%94%94-11-cnn-convolution-neural-nerwork-1-8c3a77991c3a



강화학습 쿠키런 슬라이드 : https://www.slideshare.net/carpedm20/ai-67616630


http://aikorea.org/blog/

https://github.com/openai/gym

Posted by 멋지다마라송

머신러닝에 자주 사용되는 수학 공식 정리 사이트 



http://parrt.cs.usfca.edu/doc/matrix-calculus/index.html


Posted by 멋지다마라송

[정리] 모두를 위한 딥러닝 03 - cost 줄이기 by 김성훈 


강의 웹사이트 : http://hunkim.github.io/ml/

Lec = 강의 / Lab = 실습


W=2 일때에도 계산해보자.


이걸 2차원 그래프로 나타내면 아래와 같다.

W=1 이 정답이다. (Y = 1 * X)

이를 3차원 그래프로 나타내면 아래와 같다.


W=1 인 값은 미분했을때 (접선의 기울기) 0 이 되는 곳이다.


이걸 파이썬을 이용해서 구현하면 아래와 같다.


초기값을 5 로 주고, 0.1 씩 곡선을 타고 내려가는데 GradientDescentOptimizer 라는 최적화 함수를 이용하면 된다.

오, 6번만에 정답을 찾았다.


다른 예로, 초기값을 -3 으로 주고, 0.1 씩 곡선을 타고 내려간다.

역시 6번만에 정답을 찾았다.


소스코드 : https://github.com/hunkim/DeepLearningZeroToAll

Posted by 멋지다마라송

[정리] 모두를 위한 딥러닝 00~01 by 김성훈 


강의 웹사이트 : http://hunkim.github.io/ml/

Lec = 강의 / Lab = 실습


Lec 00 : 머신러닝, 딥러닝 개요  

유투브 동영상 : https://c11.kr/xuc

인공지능 > 머신러닝 > 딥러닝 

강의 목적 : 머신러닝에 관심이 있는 사람들이라면 누구든 이해하고 개발할 수 있도록 도와주기 위해.

머신러닝 : 특정 입력을 기반으로 원하는 출력을 만드는 것. 

알아서 배울 수 있다면 로직이 정해져있지 않아도 (학습을 할 수 있으면) 원하는 출력을 얻을 수 있다. (오!)


Andrew Ng’s ML class : 앤드류 응 교수님 강의 (추천!)

https://www.coursera.org/learn/machine-learning (코세라 사이트는 프로그래밍 관련해서 좋은 강의가 많다)

- https://class.coursera.org/ml-003/lecture 

- http://www.holehouse.org/mlclass/ (note) 


• Convolutional Neural Networks for Visual Recognition. 

- http://cs231n.github.io/ 


• TensorFlow : 구글에서 만든 머신러닝 라이브러리 오픈소스 

- https://www.tensorflow.org 

- https://github.com/aymericdamien/TensorFlow-Examples



Lec 01 : 기본적인 머신러닝 용어와 개념 설명.

유투브 동영상 : https://c11.kr/xue

Supervised Learning : f레이블이 있는 기반 데이터를 가지고 학습하는 방법. 스팸 필터, 강아지 그림 맞추기 등.

Unsupervised Learning : 레이블이 없는 데이터를 가지고 학습하는 방법. 비슷한 뉴스를 모아라 등.


Types of Supervised Learning 수퍼바이즈드 러닝의 종류

- Regression : 정해진 스코어 (0~100) 중에서 점수를 예측하는 학습.

- Binary Classification : 둘중 하나 (통과/실패처럼) 를 예측하는 학습.

- Multi-Label Classification : A, B, C, D 처럼 등급을 예측하는 학습.


Lab 01 : Tensorflow 텐서플로우 설치, 기본적인 연산

유투브 동영상 : https://c11.kr/xug

왜 텐서플로우인가

https://github.com/thedataincubator/data-science-blogs/blob/master/output/DL_libraries_final_Rankings.csv


설치 : https://c11.kr/xun

기본문법 : https://github.com/sjchoi86/Tensorflow-101/blob/master/notebooks/basic_python.ipynb

기본용어 정리 : https://c11.kr/xup


Posted by 멋지다마라송
2018.01.03 12:06

머신러닝 용어 및 기초 지식 Tech/머신러닝2018.01.03 12:06

머신러닝 용어 및 기초 지식

아주 단순하게. (사실 저도 잘 몰라요;;)

인공지능, 머신러닝이라는게 영어를 잘하면 좋겠지만, 컴퓨터 언어를 잘 알면 좋겠지만 몰라도 크게 상관 없이 배우려고만 한다면 쉽게 배울 수 있다는게 정말 놀랍다...


ML - Machine Learning

머신러닝. AI 인공지능중에 한 분야.

기계를 학습시켜서 원하는 결과를 얻는 방법으로, 어떤 방법으로, 어떤 데이터로 학습했는지가 중요하다. 


train : 트레인. 트레이닝. 학습.

기계가 학습하는걸 의미한다. 

[데이터-결과] 세트를 미리 만들어야 하며, 이 [데이터-결과] 세트를 주고 특정 알고리즘에 의해 분석/학습하게 된다.


test : 테스트. 예측해봐~

이제 학습이 끝났다고 하고, 학습한 알고리즘에 데이터를 던져주면 기계가 알아서 결과를 만들어 낸다. 

학습이 끝난 후에 예측해보라고 실제 데이터를 주는걸 대부분 코드상에서 test 로 명시하는데, 처음에는 무지 헛갈렸다. 코드에 test 라고 나오면 실제 데이터를 주고 결과를 예측해보라고 하는거다.


RNN : Recurrent Neural Network

데이터 흐름에 순서가 있다면 적합하다. 

동영상, 음악, 언어, 번역 등은 순서/흐름이 중요하고, 이전에 나온 데이터와 같이 확인해야 하므로 RNN 에 적합하다.


CNN : Convolution Neural Network

이미지 분석에 적합하다.

이 그림이 고양이인지 새인지, 그림에서 어디가 사람인지, 이 사진이 방탄소년단이 맞는지, 맞다면 멤버 누구인지 등을 분석할때 적합하다. 심지어 고양이를 학습하지 않아도 고양이 종만 따로 분류할 수도 있다.


tanh : Hyperbolic Tangent : 하이퍼볼릭 탄젠트

http://terms.naver.com/entry.nhn?docId=1120035&cid=40942&categoryId=32219

https://en.wikipedia.org/wiki/Hyperbolic_function

여기에서 3번째, 파란색 점선, 쌍곡선 탄젠트 tanh(x) 만 눈여겨 보자. (이 함수를 다시 보게 될줄이야;;;)

일정값을 넘어가면 한없이 1 에 가까워지고 (1은 아님), 일정값 이하는 -1에 한없이 가까워진다. (-1은 아님)

이 임계값을 이용해서 참/거짓을 판단할 수 있다. 

이렇게 삼각함수 하이퍼볼릭 탄젠트와 비슷한 함수가 ML 에서 따로 만들어졌는데, 그게 시그모이드 함수이다.


sigmoid : 시그모이드 

https://en.wikipedia.org/wiki/Sigmoid_function

tanh(x) 와 비슷하고, 일정값 (0.5) 을 기준으로 0 또는 1 을 선택할 수 있는 함수이다.


Matrix : 행렬 

행렬의 덧셈과 곱셈은 어떻게 하는지는 알아두는게 좋다.

물론 몰라도 상관없지만, 알고리즘 이해를 위해 이정도는 알고 있어야 한다.

http://terms.naver.com/entry.nhn?docId=3338358&cid=47324&categoryId=47324


Supervised Learning : 수퍼바이즈드 러닝.

정해져있는 기반 데이터를 가지고 분석하는 방법. 고양이 그림을 주고 이게 고양이야 하고 알려주는 방법.

UnSupervised Learning : 언수퍼바이즈드 러닝.

기반 데이터가 정해져 있지 않다. 비슷한 뉴스를 모아라, 특정 단어가 나오는 동영상을 찾아라 같은 방법.


Regression : 리그레션 : 0~100점 사이를 예측.

Binary Classification : 바이너리 클래시피케이션 : 둘중 하나를 예측.

Multi-Label Classification : 멀티 레이블 클래시피케이션 : A, B, C, D... 여러가지중 하나를 예측.


Linear Regression : 리니어 리그레션. 1차 비례함수라고 생각하면 쉽다. y=2x+1

hypothesis : 하이퍼디시스 : 가정. 가설. 가설을 세우고 학습시킨다.

overfitting : 오버피팅 : 학습을 너무 정확하게 해서 응용이 불가능하게 되버리는 경우.


Prediction : 예측, 머신러닝 결과값.


P : Probability : 확률

http://terms.naver.com/entry.nhn?docId=1155366&cid=40942&categoryId=32214

간단하게 읽어볼만한 내용.


Cost : 코스트. 가설값/예측값과 실제값 사이에서 차이나는 정도. 에러 정도를 나타낸다. 적으면 적을수록 좋다.


differential : 디퍼런샬 : 미분. 접선의 기울기를 구하는 방법.

https://ko.wikipedia.org/wiki/%EB%AF%B8%EB%B6%84

기울기를 구하는 개념이 결과값을 예측하는 학습방법과 유사하기 때문에 미분이 뭔지는 알고 있어야 좋다.

 

근데 이걸로 뭘 할 수 있을까?

예) https://blog.naver.com/dieofflee/40196957885

Posted by 멋지다마라송

[윈도] 딥러닝 개발환경 만들기 - TensorFlow 설치


1. 디스플레이 드라이버 설치 

보통 윈도에서 제공하는 드라이버를 사용하기도 하는데, 혹시 모르니 공식 드라이버를 설치한다.


2. Cuda Toolkit 설치

TensorFlow 를 보면 CPU 만 이용하는 방법이 있고, GPU 도 같이 이용하는 방법이 있다.

GPU 도 같이 사용하려면 Cuda 가 필요한데, 그렇다면 Nvidia 그래픽 카드에서만 GPU 사용이 가능한가보다.

현재는 쿠다 8.0 만 지원한다.

https://developer.nvidia.com/cuda-80-ga2-download-archive


3. Python 설치

아직도 2.x 과 3.x 에서 고민중인데, 텐서플로우에서는 3.x 을 사용한다. 

그러면 이제 3.5 냐 3.6 이냐가 고민이다;; (그냥 최신버전 3.6 설치)

https://www.python.org/downloads/

윈도 64비트는 https://www.python.org/downloads/windows/ 여기에서 볼 수 있고, (64비트 중요)

현재 최신 버전은 https://www.python.org/ftp/python/3.6.4/python-3.6.4-amd64.exe <-- 이걸 다운받으면 된다. 



4. TensorFlow 설치

C:\> pip3 install --upgrade tensorflow-gpu <-- GPU 를 이용하는 경우 

C:\> pip3 install --upgrade tensorflow <-- GPU 를 이용하지 않는 경우 (GPU 를 이용하는것보다 많이 느리다)


참고 : tensorflow 1.5 가 릴리즈되었습니다.
쿠다 9 을 지원한다고 하는데, 아직 설치해보지는 못했습니다만 뭐 그냥 설치하면 되지 않을까요...
하지만, 텐서플로우 홈페이지보니 https://www.tensorflow.org/versions/  1.4 버전이 안정버전이라고 하네요.

5. 설치 확인

$ python

Enter the following short program inside the python interactive shell: (에러가 없어야 한다)


>>> import tensorflow as tf

>>> hello = tf.constant('Hello, TensorFlow!')

>>> sess = tf.Session()

>>> print(sess.run(hello))

>>> print(tf.__version__)


참고 : https://www.tensorflow.org/install/install_windows


6. IDE 

파이참 : https://www.jetbrains.com/pycharm/download/#section=windows

주피터 : http://jupyter.org/

참고 : http://dwfox.tistory.com/69


Posted by 멋지다마라송

머신러닝 강의 동영상 추천 - 모두를 위한 딥러닝 Sung Kim


https://www.youtube.com/watch?v=BS6O0zOGX4E&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm


머신러닝 관련해서 유명한 유투브 강좌입니다.


팁1 : 위의 주소를 곰 플레이어에서 열어보세요. (열기 -> 주소 열기 / 추가 -> 주소 / Ctrl + U)

자동으로 목록이 생성되어 따로 유투브에 들어가지 않아도 됩니다.

팁2 : 이렇게 곰 플레이어에서 보면 광고가 안나옵니다 ^_^


혹시 몰라 플레이 리스트를 파일로 첨부합니다.

DeepLearningToAll.SungKim.asx


Posted by 멋지다마라송


티스토리 툴바