MLOps 프로젝트 71

1부 3.4 영화 리뷰 분류: 이진 분류 예제

1부 딥러닝의 기초 3장 신경망 시작하기 3.4 영화 리뷰 분류: 이진 분류 예제 IMDB 데이터셋 (Internet Movie Database) 인터넷 영화 데이터베이스로부터 가져온 양극단의 리뷰 5만 개로 이루어짐. 훈련 데이터 2만 5,000개와 테스트 데이터 2만 5,5000개로 나뉘어 있고 각각 50%는 부정, 50%는 긍정 리뷰로 구성 각 리뷰(단어 시퀀스)가 숫자 시퀀스로 변환되어 있음. 1. 데이터셋 로드 from keras.datasets import imdb #data load, rottnsms 1만 개로 제한 (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000) train_data, ..

1부 3.3 딥러닝 컴퓨터 셋팅

1부 딥러닝의 기초 3장 신경망 시작하기 3.3 딥러닝 컴퓨터 셋팅 최신 NVIDIA GPU 권장 유닉스 운영체제 권장 주피터 노트북 딥러닝 실험을 위한 최적의 방법 노트북 애플리케이션으로 만든 파일로 웹 브라우저에서 작성하게 함. 서식 있는 텍스트 포멧을 지원하며 파이썬 코드를 대화식으로 개발할 수 있음. 오픈 소스 노트북 파일로 예제 제공 (https://github.com/gilbutITbook/006975) 케라스를 시작하는 2가지 방법 1. 클라우드에서 딥러닝 작업 수행 공식 EC2 딥러닝 AMI를 사용해 EC2에서 주피터 노트북으로 케라스 예제 실행 로컬 컴퓨터에 GPU가 없을 때 적합 2. 로컬 유닉스 컴퓨터에서 딥러닝 작업 수행 처음부터 모든 것을 설치 주피터 노트북이나 일반 파이썬 스크립..

1부 3.2 케라스 소개

1부 딥러닝의 기초 3장 신경망 시작하기 3.2 케라스 소개 케라스(keras) 딥러닝 모델을 만들기 위한 고수준의 구성 요소를 제공하는 모델 수준의 라이브러리 케라스의 백엔드 엔진에서 제공하는 최적화되고 특화된 텐서 라이브러리 사용 (텐서 조작이나 미분 같은 저수준의 연산은 다루지 않음.) 하나의 텐서 라이브러리에 국한하여 구현되어 있지 않고 모듈 구조로 구성 현재 3개의 백엔드 엔진으로 사용할 수 있음. (텐서플로, 씨아노, 마이크로 소프트 코그니티브 툴킷) 케라스 특징 동일한 코드로 CPU와 GPU에서 실행할 수 있음. 사용하기 쉬운 API를 가지고 있어 딥러닝 모델의 프로토타입을 빠르게 만들 수 있음. (컴퓨터 비전을 위한) 합성곱 신경망, (시퀀스 처리를 위한) 순환 신경망을 지원하며 이 둘을 ..

1부 3.1 신경망의 구조

1부 딥러닝의 기초 3장 신경망 시작하기 3.1 신경망의 구조 네트워크(또는 모델)을 구성하는 층 입력 데이터와 그에 상응하는 타깃 학습에 사용할 피드백 신호를 정의하는 손실 함수 학습 진행 방식을 결정하는 옵티마이저 연속된 층으로 구성된 네트워크가 입력 데이터를 예측으로 매핑 손실 함수는 예측과 타깃을 비교하여 네트워크의 예측을 기댓값에 얼마나 잘 맞는지를 측정하는 손실 값 만듦. 옵티마이저는 손실 값을 사용하여 네트워크 가중치를 업데이트 가중치 확률적 경사 하강법에 의해 학습되는 하나 이상의 텐서 여기에 네트워크가 학습한 지식이 담겨 있음. 층(layer, 딥러닝의 구성 단위) 하나 이상의 텐서를 입력으로 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈 대부분의 경우 가중치라는 층의 상태 가짐. ..

1부 2.4 신경망의 엔진: 그래디언트 기반 최적화

1부 딥러닝의 기초 2장 딥러닝이란 무엇인가? 2.4 신경망의 엔진: 그래디언트 기반 최적화 훈련 반복 루프 1. 훈련 샘플 x와 이에 상응하는 타깃 y의 배치를 추출 2. x를 사용하여 네트워크를 실행하고 예측 y_pred를 구함. 3. y_pred와 y의 차이를 측정하여 배치에 대한 네트워크 손실을 계산 4. 배치에 대한 손실이 조금 감소되도록 네트워크의 모든 가중치를 업데이트 신경망의 사용된 모든 연산은 미분 가능하다는 장점을 사용해 네트워크 가중치에 대한 손실의 그래디언트를 계산하는 것이 좋은 방법 미분 가능 == 변화율을 유도할 수 있음의 의미 그래디언트(gradient) 텐서 연산의 변화율 그래디언트의 반대 방향으로 가중치를 이동하면 손실이 감소 확률적 경사 하강법 확률적 : 각 배치 데이터가..

1부 2.3 신경망의 톱니바퀴: 텐서 연산

1부 딥러닝의 기초 2장 딥러닝이란 무엇인가? 2.3 신경망의 톱니바퀴: 텐서 연산 심층 신경망이 학습한 모든 변환을 수치 데이터 텐서에 적용하는 몇 종류의 텐서 연산으로 나타낼 수 있음. (텐서 덧셈, 텐서 곱셈..) 원소별 연산 relu함수와 덧셈 텐서에 있는 각 원소에 독립적으로 적용 고도의 병렬 구현이 가능한 연산 relu(x) = max(x,0) 입력이 0보다 크면 입력을 그대로 반환 입력이 0보다 작으면 0을 반환 브로드캐스팅 크기가 다른 두 텐서가 연산될 때 모호하지 않고 실행이 가능하면 작은 텐서가 큰 텐서에 크기를 맞춤. [브로드캐스팅 과정] 1. 큰 텐서의 ndim에 맞도록 작은 텐서에 축이 추가 2. 작은 텐서가 새 축을 따라서 큰 텐서의 크기에 맞도록 반복 [예] x -> (32,1..

1부 2.2 신경망을 위한 데이터 표현

1부 딥러닝의 기초 2장 딥러닝이란 무엇인가? 2.2 신경망을 위한 데이터 표현 최근 모든 머신 러닝 시스템은 일반적으로 텐서를 기본 데이터 구조로 사용 텐서(tensor) 머신 러닝의 기본 구성 요소 데이터를 위한 컨테이너(container) 거의 항상 수치형 데이터를 다루므로 숫자를 위한 컨테이너 임의의 차원 개수를 가지는 행렬의 일반화된 모습 (텐서에서는 차원(dimension)을 종종 축(axis)이라고 부름.) 스칼라(0차원 텐서, 0D 텐서) 하나의 숫자만 담고 있는 텐서 넘파이에서는 float32나 float64 타입의 숫자가 스칼라 텐서 ndim 속성을 사용하면 넘파이 배열의 축 개수를 확인할 수 있음. import numpy as np x=np.array(12) x.ndim 축 개수(랭크..

1부 2.1 신경망과의 첫 만남

1부 딥러닝의 기초 2장 딥러닝이란 무엇인가? 2.1 신경망과의 첫 만남 class(클래스) 머신 러닝에서 분류 문제의 범주(category) label(레이블) 특정 샘플(데이터 포인트)의 클래스 layer(층) 신경망의 핵심 구성 요소 주어진 문제에 더 의미있는 표현을 입력된 데이터로부터 추출 학습 작업 순서 1. 훈련 데이터인 train_images와 train_labels을 네트워크에 주입 2. 네트워크가 이미지와 레이블을 연관시킬 수 있도록 학습 3. test_images에 대한 예측을 네트워크에 요청 4. 예측이 test_labels와 맞는지 확인 MNIST 데이터셋 케라스 파이썬 라이브러리 사용 넘파일 배열 형태이며 흑백 손글씨 숫자 이미지(28*28 픽셀)를 10개의 범주(0~9)로 분류 ..

1부 1.3 왜 딥러닝일까? 왜 지금일까?

1부 딥러닝의 기초 1장 딥러닝이란 무엇인가? 1.3 왜 딥러닝일까? 왜 지금일까? 머신러닝을 이끈 3가지 기술 하드웨어 데이터셋과 벤치마크 알고리즘 향상 하드웨어 대용량 고속 병렬 칩인 GPU 등장 구글은 GPU를 넘어선 TPU(Tensor Processing Unit, 텐서 처리 장치) 프로젝트 공개 TPU는 GPU보다 10배 이상 빠르고 에너지 소비도 더 효율적 데이터 딥러닝의 필수 조건으로, 인터넷 시장이 발달하면서 더 많은 데이터를 얻기가 수월해짐. ImageNet 데이터셋 등장 알고리즘 알고리즘 기술 향상 및 개발 신경망의 층에 더 잘 맞는 활성화 함수 (activation function) 층별 사전 훈련(pretraining)을 불필요하게 만든 가중치 초기화(weight initializa..

1부 1.2 딥러닝 이전: 머신 러닝의 간략한 역사

1부 딥러닝의 기초 1장 딥러닝이란 무엇인가? 1.2 딥러닝 이전: 머신 러닝의 간략한 역사 확률적 모델링 통계학 이론을 데이터 분석에 응용한 것으로 초창기 머신 러닝 형태 중 하나이며 요즘도 사용되는 것 대표 알고리즘 : 나이브 베이즈 알고리즘 나이브 베이즈 알고리즘 데이터의 특성이 모두 독립적이라고 가정하고 베이즈 정리를 적용하는 머신 러닝 분류 알고리즘 로지스틱 회귀 분류 알고리즘로 나이브 베이즈와 매우 비슷 LeNet 초창기 신경망으로, 합성곱 신경망과 역전파를 연결하여 손글씨 숫자 이미지를 분류하는 문제에 적용 역전파 알고리즘 : 경사 하강법 최적화를 사용하여 연쇄적으로 변수가 연결된 연산을 훈련하는 방법 커널 방법 분류 알고리즘의 한 종류이며 그 중 SVM(Support Vector Machi..