TensorFlow
Tensor
TensoFlow 사용 예제
노드 정의 및 세션 정의
placehold 사용
변수 노드 정의
텐서플로를 이용한 Linear Regression / Logistic Regreesion 구현하기
https://www.youtube.com/watch?v=DyVxaz9VNmQ&list=PLS8gIc2q83OjStGjdTF2LZtc0vefCAbnX&index=29
https://www.youtube.com/watch?v=X9MfegBftmY&list=PLS8gIc2q83OjStGjdTF2LZtc0vefCAbnX&index=30
여기서 가중치 및 bias 최적화를 위한 경사하강법을 적용할 때, TensorFlow에서 제공하는 GradientDescentOptimizer 함수를 사용
-> 손실함수 loss를 최소화하고, 최종적으로는 W, b를 최적화시킴
텐서플로를 이용한 Neural Network(NN) 구현 및 MNIST 구현
텐서플로에서는 활성화함수를 sigmoid 대신 relu 함수 사용
sigmoid: 출력값이 무조건 0~1 사이
ReLu: 입력값이 음수이면 0으로 출력, 양수이면 입력값 그대로 출력 -> 경사도가 사라지는 문제 완화 가능하여 자주 사용됨
선형회귀에도 sigmoid 대신 softmax 함수 사용
softmax: 출력값이 각각의 값이 정답일 확률을 나타냄
MNIST
MNIST와 같은 이미지데이터에 대한 정확도를 99% 이상으로 높이기 위해서는 신경망 아키텍쳐를 CNN으로 전환하는 것이 필요
CNN
일반 NN과 CNN의 아키텍쳐 비교
conv (convolution)
-> 입력데이터와 가중치들의 집합체인 다양한 필터와의 convolution 연산을 통해 입력데이터의 특징을 추출하는 역할 수행
relu
-> 입력값이 0 이상은 그대로 출력, 0 이하는 0으로 출력
pooling
-> 입력 정보를 최대값/최소값/평균값 등으로 압축하여 데이터 연산량을 줄여주는 역할 수행
padding
-> convolution 연산을 계속 수행하면 데이터 크기가 더 이상 사용할 수 없을만큼 작아짐
-> 이를 해결하기 위해 입력 데이터 주변을 특정 값으로 채우는 padding 진행
출력 데이터 크기 계산
->
Convolution layer