다양한 종류
1. Tensorflow
-스칼라나 Go는 인공지능에서 많이 쓰일 것이다.
2. Theano
3. Keras
-tensorflow나 Theano는 저레벨
-인공신경망 구축 위한 절차들을 하나하나 코딩해줘야 한다.
4. Caffe
5. Torch
-PyTorch라는 파이썬 기반 프레임워크로 만들어짐.
-쉽게 접목 가능
6. Deeplearning4j
-JVM만 설치돼있으면 어디서든 돌아감
-하둡 (분산 저장 시스템), 스파크 (하둡 설치한 다음에 거기에 저장할 수 있도록 분산 처리하는 시스템)
-참고로 스파크는 스칼라로 만들어졌으며 얘를 바탕으로 인공지능 가능함.
-스파크는 R, 파이썬, 스칼라 등등으로 가능
7. BigDL
-스파크 위해서 만들어짐
-근데 스파크 사용자들을 대부분 파이썬 사용함.
Google Tensorflow
각종 노드들이 있고 노드와 노드들의 연결을 엣지라 한다.
방향 그래프이다.
operation: 노드
tensor: n-dimensioanl array 개념
입력/출력을 모두 텐서로 받는다.
그래서 numpy 패키지가 필요하다.
ch)
parameter/argument
정확하게는 함수 선언에 나오는 게 파라미터이고 호출에 나오는 게 아규먼트임
텐서플로우에서는 함수 대신 오퍼레이션이라고 한다.
변수: 파라미터들을 저장하고 갱신하는 데 사용
세션: 오퍼레이션 실행 위한 캡슐.
텐서플로우는 데이터들의 플로우를 directed graph로 표현했다.
단방향이다
방향성그래프
노드(오퍼레이션): 계산을 수행하는 애들
계산을 위한 데이터들을 텐서를 통해 전달한다.
계속 바뀌는 파라미터들은 변수를 통해 저장
얘를 실행시키려는 세션이 필요하다.
세션은 그래프를 실행시킨다.
업계에 가면 리눅스로 원격접속해서 사용할 것이다.
대부분의 AI 서버가 리눅스 기반이다.
$ sudo
우분투
근데 CentOS가 더 많이 쓰인다.
Red Hat
리눅스 서버를 만들어 파는 회사
상용으로 파는 리눅스: RHEL
Cent OS, Fedora core, RHEL –> 커널이 같다
따라서 명령어가 동일하다.
sudo: super user 권한으로 해주세요
sudo yum install –> 이게 CentOS 방식
내가 근데 root 사용자라면 sudo 안 써도 된다.
윈도우 명령 프롬프트에서
prompt $g
(g는 great의 약자)
DNN
은닉계층이 60 ~ 90개 정도로 이뤄진 신경망도 많이 있음.
그런데 사실 이것만 가지고는 학습효과가 크지 않다. 현업에서 많이 사용하지는 않음.
활성화함수
손실함수
가중치는 학습을 통해 손실을 최소화하는 방향으로 추정됨.
손실값이 작아져야 한다!
지속적으로 w와 b를 수정한다.
역전파 알고리즘 이용해서!
경사하강법
구슬이 멈추는 곳이 오차가 최소인 곳.
기울기의 벡터값 통해서
손실을 미분하면 기울기가 나온다.
세번째 셀:
딥러닝은 w와 b를 걍 다 알아서 정하게 한다.
x의 차원과 w의 차원이 같아야 한다.
네번째 셀:
hypothesis 예측값
y-data
cost는 그냥 operation 객체
이걸 실행시키려면 Session에 넣어야 한다.
변수 초기화를 해야 텐서플로우 내에서 이 프로그램만을 위한 공간이 만들어진다.
여기있는 모든 애들이 입력된다. (그래프가 만들어진다 보면 됨)
cost 최소화 시킬 수 있는 방향으로 실행시켜야 한다.
반복문이 진행될수록 weight가 줄어들 것이다.