반응형

Udacity machine learning


https://www.youtube.com/watch?v=ICKBWIkfeJ8&list=PLAwxTw4SYaPkQXg8TkVdIvYv4HfLG7SiH



[sklearn naive bayes] -- googl search



gaussianNB

http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.GaussianNB.html



multinomialNB

http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.MultinomialNB.html


반응형

우선 tensorflow 를 activate 시킵니다.


~$source ~/tensorflow/bin/activate


(tensorflow)~$



아 첫 실행이네요. !! 두근두근!! 


일단 예제 file을 하나 만들죠!! python 으로 테스트용 소스코드를 작성 했습니다.


hello.py

import tensorflow as tf


hello = tf.constant ("hello, tensorflow!!!")

sess = tf.Session()

print(sess.run(hello))



그리고 나서 실행


(tensorflow)~$ python3 hello.py 


2017-11-23 16:13:38.323733: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX

b'hello, tensorflow!!!'


결과는 이렇게 나왔습니다.


중간에 "TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX" 이런 메세지가 나오는데 이건 따로 찾아봐야 겠네요.


이 메세지는  CPU 에서 지원하는 기능을 제대로 사용하지 못하는 binary를 사용했다 것이라서,  CPU/ GPU에 맞는 binary를 잘 찾아서 처리해야 겠네요.


하지만, 테스트 해보는데는 문제가 없었습니다.


반응형

요즘 인공지능이란 단어를 주변에서 많이들 하더군요.

내가 그동안 해오던 일과는 거리가 상당히 먼 그런 분야이고 진입장벽(?)이 상당히 높다라고 생각해서 관심을 안 갖고 있었는데, 주말에 서점에 가서약간 충격을 먹었습니다.

 

인공지능 입문과 관련된 서적들과 너무나도 많이 나와있더군요. 더욱 충격은 중고등학생들을 타겟으로 하는 책들도 있었다는 것입니다.

 

"아.. 인공지능이라는 것이 바로 옆에 와있었구나, 난 벌써 개발자로서는 뒤쳐진 단계가 되었구나." 하는 생각이었죠.

 

몇년 지나고 나면, 전파사에서 오래된 라디오를 수리해주시는 할아버지처럼 옛날 기술을 가진 기술자, 즉,  구멍가게에서 어린애들에게 위해서 C 나 C++ , Java로 코딩 컴파일 해주는 구멍가게 아저씨가 되어있을 것 같다는 그림이 머리속에 그려졌습니다.

 

그래서 일단 인공지능에 대한 계략적인 이해를 위해 여러자료를 찾아보고 웹상에서 돌아다녀 보다가, 인공지능 알고리즘?(기술) 중하나인 머신러닝이 요즘 핫!!! 한것 같아서 ( 좀 오래동안 핫 한듯!!) 이 부분에 대해서 스터디를 준비하게 되었습니다.

 

일단 쉽게 접근 할 수 있는 도구인 텐서 플로우를 기반으로 공부를 해볼 생각입니다.( 아.!!! 강좌를 하겠다는 의미 아니에요.^^ 그냥 제 개인 스터디)

 

스터디를 하면서 메모할만한 것들은 기록하고 남기긴 할것 같네요.

 

 

텐서 플로우 설치

 

 

Ubuntu 14.04 + python 3.4(virtualenv) + tensorflow(cpu) + pycharm + matplotlib

 

 

1. https://www.tensorflow.org/install/install_linux#InstallingVirtualenv 에서 virtual env 방법으로 설치

 

3.4 기준, CPU 사용(기본 동작에서는 GPU는 불필요)  (ubuntu 에서느 3.x 버전을 추천 하더군요)

 

2. 설치 도중에 아래 에러 발생하면 직접 package를 받아서 설치하면 됨)

 

 

troubleshoot 1

35190574 

SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify

  failed  

 

$ wget https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

$ sudo pip install --upgrade tensorflow-0.5.0-cp27-none-linux_x86_64.whl

 

3. "import tensorflow as tf"를 할 때, 아래 에러 발생하면

AttributeError: type object 'NewBase' has no attribute 'is_abstract'  

 

아래 방법으로 Six package를 지정된 위치에 다시 설치해서 해결

sudo pip3 install six --upgrade --target="/usr/lib/python3/dist-packages"

 

 

 

 

troubleshoot 2

 

python 설치

1. 3.6 버전을 설치해서 문제 발생

2. 3.4 버전으로 tensorflow를 돌리기 

 

 

3.6 버전과 3.4 버전이 동시에 있어서 제 경우에는 문제가 발생했습니다.

이경우에 설치 방법은.

virtualenv --system-site-packages -p python3

=> virtualenv --system-site-packages -p python3.4

 

 

python 3.4 를 명시 하면 이 버전으로 환경이 구축 됩니다.

 

 

 

pip issue

(tensorflow)$ easy_install -U pip

 

pip 가 너무 옛날 거면 easy_install 이 잘 안됩니다.

 


(tensorflow)~/tensorflow $ easy_install-3.4 -U pip

Searching for pip

Reading https://pypi.python.org/simple/pip/

Download error on https://pypi.python.org/simple/pip/: [Errno 104] Connection reset by peer -- Some packages may not be found!

Couldn't retrieve index page for 'pip'

Scanning index of all packages (this may take a while)

Reading https://pypi.python.org/simple/

Download error on https://pypi.python.org/simple/: [Errno 104] Connection reset by peer -- Some packages may not be found!

Best match: pip 1.5.4

Adding pip 1.5.4 to easy-install.pth file

Installing pip2.7 script to /home/karzia/tensorflow/bin

Installing pip2 script to /home/karzia/tensorflow/bin

Installing pip script to /home/karzia/tensorflow/bin

 

Using /home/karzia/tensorflow/lib/python3.4/site-packages

Processing dependencies for pip

Finished processing dependencies for pip

 

 
https://pypi.python.org/simple/pip

 

여기 link로 가시면 browser에서 download 받으실 수 있습니다.

그리고 나서 pip install 을 실행하시면 됩니다.

 

(tensorflow)~/tensorflow $pip install ~/Downloads/pip-8.1.2.tar.gz

 

또는 proxy 설정을 통해서 진행할 수 있는데요.

 

~/tensorflow $ pip install --upgrade pip --proxy http://<프록시 서버주소> --trusted-host pypi.python.org

 

이렇게 해도 될것으로 예상 됩니다.

 

 

~/tensorflow $ pip3 install --upgrade tensorflow --proxy http://<프록시 서버주소> --trusted-host pypi.python.org

 

이렇게 해서 tensorflow upgrade는  성공 했으니까요.

 

 

 

Trouble shooting #2

 

Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)'),)': /simple/tensorflow/

 

 

=>

~/tensorflow $ pip install --upgrade pip  --cert 서티 파일 --proxy http://<프록시 서버주소> --trusted-host pypi.python.org

 

ex)

pip install <library_name> --trusted-host=pypi.org --trusted-host=pypi.python.org --trusted-host=files.pythonhosted.org --proxy=http://[proxy]

 

 

사용법

python3 -m venv <DIR> source <DIR>/bin/activate

 

activation 방법

...:~ $ source ~/tensorflow/bin/activa

 

(tensorflow)...:~ $

 

deactivation 방법

(tensorflow)...:~ $ deactivate

...:~ $

 

 

 

 

python 3.8 ubuntu에 설치하기

https://linuxize.com/post/how-to-install-python-3-8-on-ubuntu-18-04/

 

 

 

 

 

 

 

반응형

 

 

 생각보다 방대한 양과 도대체 무엇부터 봐야 하는지를 몰라서 여기저기 정보들을 찾아 해매다가 정작 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

 

+ Recent posts