Data Science/Tensorflow2.0, Pytorch 13

pytorch) 합성곱 신경망

합성곱 신경망이란? 뉴런이 모여 서로 연결된 형태인 인공신경망을 알아보았고 구현을 해 보았습니다. 그러나 이미지 데이터의 경우 해당 모델의 성능이 좋지 않습니다. 그 이유는 1. 이미지는 하나의 숫자가 아닌 공간적 특성(weight x height x channel)이 있고, 2. 예외적 모양(예를 들어 그냥 X와 기울어진 X)이 들어올 때 마다 인공 신경망은 전혀 다른 값으로 인식하여 가중치들을 다시 학습시켜야합니다. 이미지의 크기가 커질수록 이런 변형의 가능성은 더 커집니다. 그래서 동물의 시각 뉴런에 대한 연구로부터 얻은 개념을 바탕으로 1980년대 네오코그니트론을 거쳐 Yann LeCun 교수의 합성곱 신경망(CNN)이 개발되었습니다. 그래서 합성곱 연산에서는 filter로 이미지를 슬라이드하면서..

pytorch) 선형회귀분석

선형회귀분석이란? 주어진 데이터를 가장 잘 설명하는 직선 하나를 찾는 것, 즉 x와 y라는 데이터가 주어졌을 때 이 데이터의 관계를 가장 잘 나타내는 y = wx+b라는 직선의 방정식을 찾는 것입니다. 가장 잘 설명한다? 어떤 직선의 방정식이 얼마나 잘 설명하는냐를 평가하는 척도로 사용하는 것으로 평균제곱오차(Mean Squared Error; MSE)가 있습니다. MSE는 w와 b 중 w에 대한 오차를 나타낸 것으로 이를 L2 loss function이라고도 합니다. 그렇다면 최적의 w를 찾아나가는 과정은? 대부분의 딥러닝 모델에서는 경사하강법을 사용한다. 아래에 경사하강 학습법에 대해 정리해 놓은 것을 참고할 수 있으며, 간단히 말하면 지속적으로 w를 업데이트함으로써 오차의 극소값을 찾는다는 것입니다..

Learning Tensorflow) 4. 합성곱신경망

학습목표: 합성곱 신경망(Convolutional Neural Network)와 이와 관련된 구성 요소 및 메서드를 소개 1. 합성곱 신경망에 대한 소개 https://libertegrace.tistory.com/entry/1-Basic-CNN 1. Basic CNN-1 1. 합성곱 신경망의 기본 구조는 image -> Convolutional layer/Pooling layer/Activation function 의 반복-> Flatten/Fully connected layer -> result입니다. 1) Convolutional layer란 input -> filter -> ou.. libertegrace.tistory.com 2. MNIST 분류기를 통해 배워보는 tensorflow 로 CNN구현..

Learning Tensorflow) 1. 텐서플로의 기본 이해하기

텐서플로우의 동작의 구성 1. 만들고 2. 실행하기 1) 그래프 -> 세션 -> 실행 ; 만들고 실행하기 import tensorflow as tf로 tensorflow를 import하면 그 시점에 있는 기본 그래프가 만들어지면 우리가 만드는 노드는 이 기본그래프에 자동으로 연결된다. 그래서 노드를 어떻게 만드는가?! a = tf.constant(5) b = tf.constant(2) 그러면 만들어진 노드로 연산을 진행하는 연산 그래프는 어떻게 만드는가?! 흔히 사용되는 tensorflow 연산이나 축약형 연산자를 이용한다. d = tf.multiply(a, b) #a*b c = tf.add(a, b)#a+b 이렇게 노드와, 연산 그래프를 만드고 나면 연산 그래프를 실행할 준비가 된 것이며, 연산을 실행..

10. Tensorflow2.0 Evaluating & Predicting

이전까지 (Beginner방식으로 보면) Training까지 할 수 있었습니다. #Training num_epochs = 10 batch_size = 64 hist = model.fit(X_train, y_train, batch_size = batch_size, epochs = num_epochs, shuffle = True) his.history 모델을 학습시켰으니 모델에서 evaluating합니다. 1. Evaluating model.evaluate(X_test, y_test, batch_size = batch_size) 2. Predicting 및 결과 확인 1) input으로 들어갈 이미지 데이터 표현(시각화) import matplotlib.pyplot as plt import numpy as ..

8. Tensorflow2.0 Optimization & Training (Expert)

여기에서는 공식 홈페이지에서 expert 버젼으로 소개하고 있는 Optimization, Training방식을 배워보도록 하겠습니다. https://www.tensorflow.org/tutorials/quickstart/advanced?hl=en 텐서플로 2.0 시작하기: 전문가용 | TensorFlow Core Note: 이 문서는 텐서플로 커뮤니티에서 번역했습니다. 커뮤니티 번역 활동의 특성상 정확한 번역과 최신 내용을 반영하기 위해 노력함에도 불구하고 공식 영문 문서의 내용과 일치하지 않을 수 있습니다. 이 번역에 개선할 부분이 있다면 tensorflow/docs 깃헙 저장소로 풀 리퀘스트를 보내주시기 바랍니다. 문서 번역이나 리뷰에 참여하려면 docs-ko@tensorflow.org로 메일을 보내..

7. Tensorflow2.0 Optimization & Training (Keras)

이전 시간에는 keras에서 제공하는 방식으로 optimization과 Training을 beginner 수준으로 쉽게 해 보았습니다. 여기에서는 공식 홈페이지에서 expert 버젼으로 소개하고 있는 Optimization, Training방식을 배워보도록 하겠습니다. 그 전에, keras를 이용하여 ptimization과 Training을 표현하는 다른 방법을 먼저 알아보고 다음 페이지에서 본격적으로 expert 방법을 살펴보도록 하겠습니다. https://www.tensorflow.org/tutorials/quickstart/advanced?hl=en 텐서플로 2.0 시작하기: 전문가용 | TensorFlow Core Note: 이 문서는 텐서플로 커뮤니티에서 번역했습니다. 커뮤니티 번역 활동의 특성..

6. Tensorflow2.0 Optimization & Training (Beginner)

지금까지 데이터를 불러오고-> layer을 쌓고(합치고) -> 그걸 model 에 넣는 작업까지 학습했습니다. 이번에는 model을 학습시키는 것을 배워 보겠습니다. 학습과정은,  데이터가 모델에 들어가서 -> 모델이 예측을 하고 -> 그 예측값과 정답을 비교한 뒤 -> loss function으로 얼마나 틀렸는지를 계산합니다. -> 그를 바탕으로 Optimization을 하고, -> 그걸 model에 업로드 합니다. -> 이렇게 model이 업데이트 되었으면, 다시 데이터가 들어가고를 반복합니다. 1. Optimization 1) 모델을 optimization하기 전 설정해야 할 것들 1. Loss function #1-1. binary classification일 때 tf.keras.losses.b..

5. Tensorflow2.0 Build Model

keras의 layer같은 경우는 쌓는 방법이 여러가지가 있습니다. 이는 공식 홈페이지를 들어가보면 여러가지가 있는데, 그 중 한 가지를 학습하였습니다. (강의마다 이 부분이 너무 달라 저에게 맞는 방식을 찾느라 정말 많이 헤맸습니다. 1. input shape 알기(지정해주기) 먼저 model에 input이미지를 넣기 위해서는 input shape와 전체 class 개수를 지정해주는 것 부터가 시작입니다. from tensorflow.keras import layers #1. input shape와 전체 class 개수를 지정해주는 것 부터가 시작! input_shape = (28, 28, 1) num_classes = 10 2. layer 쌓기 첫 layer에 input을 넣어주고, 그 이후부터 계속..

4. Tensorflow2.0 Layer Explaination

이번에는 Tensorflow modeling을 하기 전에 layer을 각 층마다 보면서 어떻게 작동하는지를 tensorflow를 사용해서 볼 것입니다. 즉, 1. layer에 어떻게 data가 input되고, 2. 결과는 어떻게 output되는지 시각화를 진행해 보고 3. 어떻게 layer을 쌓는지 를 알아보도록 합니다. import numpy as np import tensorflow as tf import matplotlib.pyplot as plt %matplotlib inline ########여기는 이전에 했던 진행했던 코드들 입니다. ######### #데이터 불러오기 from tensorflow.keras import datasets (X_train, y_train), (X_test, y_t..