본문 바로가기

Deep Learning With Tensorflow

(6)
1. 텐서플로 2.x의 이해 텐서플로 2.x는 tf.keras와 같은 하이레벨 API를 사용할 것을 권장하지만 내부의 세부 정보를 더 많이 제어해야 하는 경우 텐서플로 1.x의 일반적인 로우레벨 API를 그대로 유지한다. tf.keras와 텐서플로 2.x에는 몇 가지 큰 차이점이 있다. tf.keras는 순차적 API (Sequential), 함수적 API (Functional), 모델 서브클래싱(Model Subclassing)의 세 가지 프로그래밍 모델과 함께 더 하이레벨 API를 제공한다. 특정 keras.layer를 레고 블록 하나에 비유한다면 학습 모델은 '레고 블록을 쌓는 것'처럼 간단히 생성할 수 있다. 순차적 API 하기에서 보인 Mnis코드를 살펴볼 때 순차적 API를 사용하는 예를 다뤘으므로 다음과 같이 블록을 만..
04. 실습: IMDB를 이용한 감정분석과 초매개변수 튜닝과 AutoML, 출력 예측, 역전파에 대한 실용적 개괄에 대해 영화 리뷰를 이용하여 실습을 진행해 보겠습니다. 간단합니다. 01. 데이타로드 import tensorflow as tf from tensorflow.keras import datasets, layers, models, preprocessing import tensorflow_datasets as tfds max_len = 200 n_words = 10000 dim_embedding = 256 EPOCHS = 20 BATCH_SIZE =500 def load_data(): #load data (X_train, y_train), (X_test, y_test) = datasets.imdb.load_data(num_words=n_words) # Pad sequences with max_len X_train =..
03.텐서플로 2.0에서 Accuracy Rate 올릴 수 있는 방법, 정규화와 배치정규화 비유를 통해 신경망을 훈련하는 방법의 직관을 가져보자. 그래디언트 하강(GD)이라고 알려진 유명한 훈련 기법에 중점을 두자. 그래디언트 하강은 가파른 경사면을 따라 내려가며 도랑을 찾는 것을 목표로 하는 등산객에 비유할 수 있다. 텐서플로는 이런 그래디언트 하강에 대해 계산해 주므로 계산이나 구현을 걱정할 필요가 없다. 신경망은 본질적으로 수천 개 때로는 수백만 개의 매개변수를 가진 여러 미분 가능 함수의 복합체로 구성된다. 각 신경망 계층은 학습 단계에서 관찰된 정확도를 향상하고자 오차를 최소화하는 함수를 계산한다. 뒤에서 역전파를 알아볼 때 최소화라는 것이 여기 있는 간단한 예제보다는 더 복잡하다는 것을 알게 될 것이다. 그러나 여전히 도랑에 도달하려면 경사를 내려간다는 직관은 동일하다. 텐서플로는 ..
02. 딥러닝의 작동원리필기체 숫자 인식 딥러닝의 작동 원리 층에서 입력 데이터가 처리되는 상세 내용은 일련의 숫자로 이루어진 층의 가중치(weight)에 저장되어 있습니다. 기술적으로 말하면 어떤 층에서 일어나는 변환은 그 층의 가중치를 파라미터(parameter)로 가지는 함수로 표현됩니다. 이런 맥락으로 보면 학습은 주어진 입력을 정확한 타깃에 매핑하기 위해 신경망의 모든 층에 있는 가중치 값을 찾는 것을 의미합니다. 하지만 어떤 심층 신경망은 수천만 개의 파라미터를 가지기도 합니다. 이런 경우에 모든 파라미터의 정확한 값을 찾는 것은 어려운 일로 보입니다. 파라미터 하나의 값을 바꾸면 다른 모든 파라미터에 영향을 끼치기 때문입니다. 신경망의 출력을 제어하려면 출력이 기대하는 것보다 얼마나 벗어났는지를 측정해야 합니다. 이는 신경망의 손실..
01. 퍼셉트론에 대한 이해와 활성화 함수 퍼셉트론 퍼셉트론은 입력 특징 또는 간단히 특징이라 불리는 n개의 크기를 갖는 입력 벡터(x1, x2,... xn)가 주어지면 1(예) 또는 0(아니오)을 출력하는 간단한 알고리즘이다. 퍼셉트론은 '아마도'라는 결과를 표현할 수 없다는 점에 유의하자, w와 b를 정의하는 방법을 알고 있다면 '예(1)'또는 '아니오(0)'로 대답할 수 있다. 텐서플로 2.0으로 구현한 퍼셉트론 Sequential() 모델은 신경망 계층의 선형 파이프라인 (스택)이다. 아래의 코드는 784개의 입력 변수(특징이라고도 함)를 취하는 10개의 인공 뉴런을 가진 단일 계층을 정의한다. 망이 '밀집(denes)'돼 싸는 것은 각 계층의 뉴런이 이전 계층에 위치한 모든 뉴런과 완전 연결돼 있고 그다음 계층에 있는 모든 뉴런과도 완전..
01. 심층 컨블루션 신경망(DCNN) 심층 컨볼루션 신경망(DCNN)은 여러 신경망 계층으로 구성합니다. 일반적으로 컨볼루션과 폴링(Pooling)이라는 두 유형의 계층이 번갈아 가며 사용됩니다. 각 필터의 깊이는 왼쪽에서 오른쪽으로 갈수록 깊어진다. 마지막 단계는 일반적으로 하나 이상의 완전 연결 계층으로 구성된다. 컨볼루션 개념에는 3가지 핵심 키워드로 로컬 수용 필요(Receptive Field), 가중치 공유, 풀링(Pooling)이 있다. 완전연결 계층의 문제점과 합성곱층(Convolutional Layer)의 발전 완전연결 계층(fully Connected Layer)을 이용해 MNIST데이터셋을 분류하는 모델을 만들 때, 3차원(세로, 가로, 채널)인 MNIST 데이터(28, 28, 1)를 입력층(Input Layer)에 넣어주..