본문 바로가기

머신러닝 & 텐서플로 & 파이썬

머신러닝을 스터디하기 위한 길잡이

반응형

 

 

 생각보다 방대한 양과 도대체 무엇부터 봐야 하는지를 몰라서 여기저기 정보들을 찾아 해매다가 정작 Deeplearning을 이해 하는 것보다 링크들 찾아다니면서 용어들을 찾아보는데 시간을 많이 보내게 되는 분들을 위해서.!!!

 

혹시 저와 같이 AI를 공부해보고 싶다고 생각하지만 무엇부터 해야 할지 모르는 막막한 분들이 검색을 하다가, 아주 우연히~~~ 이 링크를 발견하셨다면, 운이 아주 좋은 것 일겁니다.

깊은 내용은 없지만 AI/ Deeplearning 을 이해하기 위해서는 무엇부터 해야 하는지를 아주 간단하게  작성해놓은 스터디 길잡이 .

 

머신러닝을 스터디하기 위한 길잡이

 

머신러닝이라는 단어, AI 라는 단어는 개발자에게 하나의 장벽처럼 느껴집니다.
이유는 C/C++/ JAVA 와 같은 프로그래밍 언어를 익히고 이를 이용하여 프로그래밍 하는 것과는 차원이 다른 무엇인가가 있다는 분위기를 주기 때문이죠.

 

 
그러나 하루를 투자한다면, 머신러닝이 이런거였어?
1주일 정도만 투자해본다면, 머신러닝을 사용할 곳이 없을까? 라는 생각을 하게 됩니다. 
(물론 능숙하게 머신러닝을 자유자제로 적용할 수 있다는 의미는 아닙니다.^^;)

 

 
과연, 그럼, 정말!!! 그럴까요?
 
자 한가지 수학 공식을 써보겠습니다. 엄청 어렵고 복잡한 수학 공식입니다. 정말 아무나 이해할 수 없는 공식이죠.
 
Y: 출력
X: 입력
Y = WX+B
 
( 잉,!!! 뭠미,!!!! 어렵다매...!!!!)
 
바로 이 공식입니다. 
 
이 공식을 저는 정말 쉽게 설명 드리겠습니다.
y는 x에 의해 변하는 w 의 기울기를 가진 직선을 B만큼 이동시킨 것이다.
다시말하면, 기울기가 W이고 X축으로 B만큼 이동하는 직선의 방정식입니다.
 
제가 정말 어려운 공식이라고 예기 해놓고, 직선의 방정식 하나를 왜 적었을까요? 중학교 수학만 배웠어도 알 수 있는 공식인데 말이죠.

 

 
머신러닝이 이런것입니다. 말은 어렵지만 막상 들여다보면 정말 단순한 수학공식 하나가 나옵니다.

 

그러면서 그것을 가지고 머신러닝이 무엇인지를 설명합니다.

 

저는 운이 좋아서 youtube에서 15분에서 20분짜리 동영상 강의 하나를 찾아서 보게 되었는데, 
그 영상을 보고 머신러닝이 뭘의미하는지 이해하게 되었습니다.
 
머신러닝이 뭔가를 설명하기 위해서 대부분 초반에 y=wx+b의 공식을 보여줍니다.
차이점은 x가 주어지고 , y를 찾는 것이 아니라 , x,y가 주어지고 w, b를 찾는 것입니다.

 

정말 단순한 공식이지만, 이를 근간으로 머신러닝의 강의가 시작됩니다 대부분이 말이죠.
 
사실 머신러닝 알고리즘을 모두 구현해서 뭔가를 개발한다는 것은 어쩌면, 어려운 내용일 것입니다.
그렇지만, 우리는 알고리즘 개발이 아니라, 머신러닝을 사용한다는 개념으로 접근해야 합니다. 
(퍼셉트론이 왜 옳은지 증명하고, CNN, RNN등이 정말로 결과값에 수렴하는지, 등을 밝히고 논문을 쓸게 아니라면요. )
 
서론이 너무 길어졌는데요. 머신러닝이 어려운 것이 아니다 라는 예기를 하고 싶었고, 하루만 투자하면, 머신러닝이 뭔지 감을 잡을 수 있다는 예기를 하고 싶었습니다.
 

 

 

1.머신러닝이란 무엇인가? (1일차)

- Linear Regression : 직선을 이용해 예측  (선형 회귀)
- Logistic (regression) classification : 참/거짓, A/B, TRUE/FALSE, ... 분류
- Softmax Regression (Multinomial Logistic Regression) : 여러가지를 분류
- Sigmoid 
- 이외의 관련 주제 : overshooting , Overfitting, learning rate,  gradient descent, data preprocessing ( zero-centered data, normalize )
 

 

 

2. DEEP Learning (3일 분량)

- 개념 : 뉴럴 네트워크이다. 인간의 뉴런을 본떠 만든 구조, 퍼셉트론
- XOR 문제 : 하나의 뉴런으로 해결 불가, 여러개의 뉴런으로 가능
- Backpropagation 
- Vanishing gradient problem 

 

- ReLU
- 초기 값을 잘 줘야 한다.( No All 0's: 초기화시 모든 값은 0이면 안된다.) , Xavier
- Fully connected NN

2. DEEP Learning (3일 분량)

- CNN
- RNN
- 관련 주제 :  Drop out, 앙상블(Ensemble)
 
-------------- 여기까지 하면, 2016년 정도까지의 기술을 확보하신겁니다. -------
 
아래 내용들은 비교적 최신의 기술들과 급격히 발전하는 분야의 기술 들입니다.
 

3. RL( 강화학습 : Reinforcement Learning)

- Q-Network
- DQN
 
이 부분은 더 최신의 기술들입니다.
 

4. GAN( 경쟁학습 : Generative Adversarial Nets)

 
결론.  머신러닝 !!!! 지금 도전해도 늦지 않았습니다.!!!!
 
 
 
위의 주제들 중 가장 기본이 되는 머신러닝, 딥러닝을 아주 체계적으로 쉽게 설명해주는 김성 교수님의 강의가 있습니다. 
아래 링크입니다. 
https://www.youtube.com/watch?v=BS6O0zOGX4E&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm
 
이 강의를 통해서 쉽게 머신러닝에 입문(?) 할 수 있을거라 생각합니다.
 

인공지능 블로그 사이트 조사

 

AI Dev site : 

다양한 주제들에 대해서 다루고 실천하고 있는 사이트입니다.

여러가지 뉴스들이나 주제들을 살펴볼수 있어요.

http://aidev.co.kr/

 

 

 

인공지능 블로그- 조대협

다양한 분야에 대해서 다루고 계시는 조대협 님이신데요.

역시나 머신러닝에 대해서도 다루고 계십니다.

http://bcho.tistory.com/m/1208

 

 

머신러닝 스터디

제가 머신러닝을 쉽게 이해하고 접근 할 수 있었던 계기는 바로 아래 링크의 강의 내용 때문이었습니다.

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

 

https://hunkim.github.io/ml/

 

 

IMROOT 의 AI 스터디

http://www.iamroot.org/xe/index.php?mid=AI&page=2

 

인공지능 개론

AI 사용 분야에 대해서 살펴 볼 수 있는 주제의 슬라이드입니다.

사실 딥러닝을 어느정도 이해하고 나면 이걸 어디다 사용하지? 라는 질문을 스스로에게 하게 됩니다.

정말 많은 분야에서 사용할 될 수 있지만, 막상 주위에서 찾아보려면 쉽지 않습니다.

어떤 분야에서 사용되고 있는지 살펴볼 수 있는 자료입니다. 

https://www.slideshare.net/medit74/ss-74123546

 

 

 

Creating AI chat bot with Python 3 and Tensorflow

대화형 챗봇을 만들는 과정에서 뇌의 활동과 흡사하게 디자인 한 내용입니다.
뇌와 AI를 동시에 리뷰하여 디자인.
 

https://www.youtube.com/watch?v=q44fefORi1k

 

 

 

텐서플로우에서 제공하는 한국어 가이드 북입니다.

https://tensorflowkorea.gitbooks.io/tensorflow-kr/

https://tensorflowkorea.gitbooks.io/tensorflow-kr/content/g3doc/tutorials/mnist/beginners/

 

 

C++ 로 Deeplearning 스터디하기

https://blog.naver.com/atelierjpro/220697890605

 

키워드

Tensorflow, Caffe, Keras

pytorch

Linear Regression

Perceptron

Merchin Learning

Deep learing

Neural Network

ANN ( Artificial Neural Network)

CNN

RNN

LSTM

Big Data

Robotics

지도 학습 ( Supervised Learning)

비지도 학습(Unsupervised Learning)

인지 컴퓨팅

강화 학습(Reinforcement Learning)

KNN

SVM

Decision Tree

Logistic Regression

K-Means Clustering

DBSCAN Clustering

Hierarchical Clustering

MDP: Markov Decision Process

회귀(Regression) 와  분류(  Classification)

Over fitting

Under fitting

Normal Fitting

 

경쟁학습 GAN

 

LLM : Large Language Model

openai

chat GPT

Dall-E

stable diffusion