본문 바로가기

논문/눈문 관련 인공지능 공부

책 :텐서플로 2.0 프로그래밍

728x90

1. 텐서플로란?

2. 텐서플로 설치⊂

3. 텐서플로 기초 파이썬

4. 회귀

5. 분류

6. 컨볼루션신경망(CNN)

7. 순환신경망

8. 모델 다루기

9. 오토인코더

10. 강화학습

 

텐서플로(TensorFlow)텐서가 흐른다 : 머신러닝을 위한 오픈소스 플랫폼

텐서 : 값을 가진 벡터나 행렬로 텐서플로는 이 텐서의 값을 계산해서 원하는 결과를 얻어냄

딥러딩 ⊂ 머신러닝 ⊂ 인공지능

 

아나콘다, 그래픽 드라이버(CUDA, cuDNN), 텐서플로, DLL파일 포함하는 패키지 설치 필요

설치과정이 많지만 어렵진 않다..NVDIA그래픽이 있으면 먼저 삭제 해주고 책에 있는대로 CUDA, cuDNN을 순서대로 설치해주면 된다. 그리고 나머지 C++ 패키지 설치하고 텐서플러우 설치하고  다시 정리

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

아나콘다 네비게이터에서 주피터를 실행해도 안될 때, 

http://mobilelab.khu.ac.kr/webpythonbbs/?vid=6 참고.

 

주피터 안쓰고 코랩 씀ㅋ

 

3장

% : 매직 커맨드로 여러 가지 기능을 미리 정의해 놓아서 편리하게 사용할 수 있게 해주는 역할.

임포트(import) : 텐서플로를 메모리로 불러오는 과정.

모듈(module) : 임포트할 수 있는 미리 저장된 프로그램의 집합.(파이썬에선)

ex)import tensorflow as tf -> as는 긴 모듈 이름을 줄이는 명령어로 tf로 사용 하겠다는 뜻.

    print(tf.__version__) 버전 보기

 

+난수 - 행렬로 구성함

균일 분포 : 최솟값과 최댓값 사이의 모든 수가 나올 확률이 동일한 분포에서 수를 뽑는다는 의미.

  ex)rand = tf.random.uniform([1],0,1) #tf.random.uniform을 불러오면 균일분포(uniform distribution)의 난수를 얻는다.

-> [output] tf.Tensor([0.4458922], shape=(1, ), dtype=float32)

   -[1]은 결과 값의 shape(행렬을 구성하는 행, 열 등 차원의 수를 나타내는 값).

   -0과 1은 최솟값과 최댓값. 

  -dtype은 자료형

 

정규 분포(normal) : 가운데가 높고 양극단으로 갈수록 낮아져서 종 모양을 그리는 분포(bell curve)

 ex)rand = tf.random.normal([4],0,1) #0은 정규분포의 평균(mean), 세 번째의 1은 정규 분포의

    표준편차(standard deviation) 이때의 정규 분포를 표준 정규분포라고 한다.

-> [output] tf.Tensor([0.8~ 1.7~ 0.8~ -0.3~],shape=(4,),dtype=float32)

 

+뉴런 만들기

 입력 --> 뉴런 --> 출력

  입력X --------------------------> 활성화함술 F ------------------>출력Y      Y=F(X*w)

           --가중치 w(weight) ->   (activation function)

 

가중치 : 평균치를 산출할 때 각 개별치에 부여되는 중요도로 비중이 서로 다른 품목에서 평균치를 산출할 때 

단순한 산술 평균만으로는 합리적인 수치를 산출할 수 없기에  비중에 따라 가중치를 넣어 가치있는 값을 산출할 수

있다.

뉴런에서 학습할 때 변하는 것.처음에 초기화를 통해 랜덤한 값을 넣고 학습 과정에서 점차 일정한 값으로 수렴

활성화 함수로는 시그모이드(S자 형태의 곡선), ReLU(Rectified Linear Unit으로 정제된 선형 함수[y=x]) ..등

-신경망은 뉴런이 여러 개 모여 레이어(Layer)를 구성한 후, 이 레이어가 다시 모여 구성된 형태

  -입력, 가중치, 활성화 함수, 출력으로 구성

 

ex)경사하강법 알고리즘(Gradient Descent)을 사용해서 w값을 w에 입력과 학습률(a알파)과 에러를 곱한 값을 더해주는 것 -> w = w + x * a * error

error : 실제출력으로 나온 값과 기대 출력인 0의 차이. error = y-output으로 계산

-> error값은 0에 점점 가까워지고 output도 기대출력인 0에 수렴해지는 것을 확인

 

#출력으로 1을 얻는 뉴런을 어떻게 만드나

x,y값만 바꿔서는 x가 0이기 때문에 1이 될 수 없다. 이때 편향(bias)을 추가해준다

[Y = f(X*w+1*b)] (AND)

->기대출력과 실제 출력의 차이인 error로 w와 b를 각각 업데이트해서 뉴런을 학습, 1에 수렴하게 됨 

 

+시각화 기초

mataplotlib.pyplot을 이용한 그래프 그리기로 시각화 하기

-> import하고 show()를 통해서 그래프 확인

위에서 점그래프로 바꾸려면 plt.plot(x,y,'bo')로 수정(선['b-'], 점선['b--'], 색깔 변화[빨강은 r, 노랑은 y]..)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'논문 > 눈문 관련 인공지능 공부' 카테고리의 다른 글

ch.5 분류(Classification)  (0) 2021.07.23
ch.10 강화학습  (0) 2021.07.22
ch 4 - 회귀  (0) 2021.07.07