Tensorflow-구글
pytorch-페이스북
-->python이 각광받게 됨
교재 : 파이썬으로 만드는 인공지능(참고)
회귀 : 머신러닝뿐만 아니라 딥러닝에서도 사용(강조!)
정답과 최대한 비슷하게 만드는 것(오차 최소화)이 목표!
gradient descent(경사하강법)
최적의 값을 찾기 위한 거꾸로 된 산을 내려가는 방법(오차가 0과 최대한 가깝게)
loss function을 최소로 만드는 방법
단순 선형회귀
선으로 표시, 가장 기본적이고 간단한 회귀 알고리즘, 가장 많이 사용하는 모델
--> 입력값 X와 결과값 Y
--> 다중 선형 회귀, 다항 회귀 : 단순 선형회귀에 더 많은 조건이 들어가는 경우(직선이 아닌 휘어지는 선으로 표시)
lr=learning_rate의 약자
과적합과 정규화
과적합 : 모델이 과도하게 복잡해져 일반성이 떨어진 경우
과적합 방지 방법 : 교차 검증, 정규화
교차 검증
훈련용 데이터와 별개의 테스트 데이터, 검증 데이터로 나누어 성능 평가하는 방법
정규화
모델의 복잡성을 줄인다, 모델에 패널티를 부여함
회귀 알고리즘 평가 지표
정답이 불연속적인 값
예>성적 분류(점수를 A+, B+ 등등으로 표현)
로지스틱 회귀(s자 모양의 곡선 그래프-sigmoid 함수 사용)
SVM(Support Vector Machine)
딥러닝이 나오기 전에 대세였음
두개의 결과 값으로 분류되는 이진분류 문제 -> SVM 분류 알고리즘으로 해결(근처의 값을 찾아서 결과에 적용-최적의 결정 경계를 찾음, 비슷한 간격, 가장 간격이 넓게끔)
나이브 베이즈 분류
베이즈 정리, 확률 통계학적 분류 알고리즘
KNN 알고리즘
가까운 거리 내의 이웃의 수에 따라 분류
분류 알고리즘 평가 지표
<혼동 행렬>
--> 앞쪽은 진실인지 아닌지를 말하고, 뒤는 겉으로 표현되는 결과를 말함
--> 요새 대세는 여러가지 평가 지표를 보여주는 것
클러스터링 / 차원 축소
클러스터링
유사한 개체끼리 군집화하는 것
Gaussian Mixture Model(GMM)
종 모양의 그래프, 클러스터링 형태
차원 축소
고차원의 데이터를 저차원으로 줄이는 알고리즘
차원의 저주 발생 방지
구글에서 개발한 딥러닝 프레임워크
python, c, c++
tensorflow 버전 비교
tensorflow 1.x 버전에서는 Session에서 모든 학습과 계싼을 진행하였다.
그러나 tensorflow 2.0에서는 파이썬의 함수처럼 바로바로 계산되어 사용할 수 있다.
상수 텐서를 생성
tf.constant(value, datatype)
tf.zeros(shape, dtype) : 모든 원소의 값이 0
tf.ones(shape, dtype) : 모든 원소의 값이 1
시퀀스 텐서를 생성
tf.linspace(start, stop, num, name=None)
start부터 시작해서 stop까지 num개의 값을 생성한다.
변수 텐서 생성
tf.Variable(value, name="name")
텐서 연산
tf.add(x, y)
tf.subtract(x, y)
tf.multiply(x, y)
tf.truediv(x, y)
퍼셉트론
-> XOR 연산을 하다가 다층퍼셉트론의 개념이 나옴
다층 퍼셉트론의 레이어 : 입력층, 은닉층, 출력층
-> 신경망과 유사한 모양을 가진 다이어그램이 나옴