728x90
반응형

딥러닝 (Deep Learning) 32

딥러닝 알고리즘의 변화

[케라스 창시자에게 배우는 딥러닝] 참고 2000년대 후반까지는 매우 깊은 심층 신경망을 훈련시킬 수 있는 안정적인 방법을 찾지 못했었다. 깊게 쌓은 층을 통과해서 그래디언트(gradient)를 전파하는 것이 가장 큰 문제였다. 신경망을 훈련하기 위한 피드백 신호가 층이 늘어남에 따라 희미해졌기 때문이다. 하지만 2009~2010년 경 몇 가지 간단하지만 중요한 알고리즘이 개선되면서 그래디언트를 더 잘 전파되게 만들어 주었고, 그 결과 10개 이상의 층을 가진 모델을 훈련시킬 수 있게 되었다. 신경망 층에 더 잘 맞는 활성화 함수(Activation function) - ReLU함수 층별 사전 훈련(pre-trained)을 불필요하게 만든 가중치 초기화(weight initialization) 방법 - ..

딥러닝의 개념과 동작 원리

[케라스 창시자에게 배우는 딥러닝] 참고 사람들은 어떤 것을 이해하기 위해서 전체적인 그림의 숲을 먼저보고 세세한 내용의 나무를 보는 방법을 많이 선호한다. 딥러닝에 대한 이해를 전체적인 개념(숲)부터 내부 동작원리(나무)로 나눠서 다시 정리해보는 시간을 가져보자 :) ⛺ 숲으로 보는 딥러닝 (큰 개념) 머신러닝 : 많은 입력과 타깃의 샘플을 관찰하면서 입력(ex.image)을 타깃(ex.cat)에 매핑(mapping)하는 것. 심층 신경망 : 입력-타깃 매핑을 간단한 데이터 변환기(layer)를 많이 연결해 수행하는 것. (데이터 변환은 샘플에 노출됨으로써 학습이 이루어짐.) 🌳 나무로 보는 딥러닝 (동작원리) 층에서 입력 데이터가 처리되는 상세 내용은 일련의 숫자로 이루어진 층의 가중치(weight)..

'표현(representation)을 학습하다' 의미

[케라스 창시자에게 배우는 딥러닝] 참고 representation learning 머신러닝과 딥러닝의 핵심 문제는 '의미 있는 데이터로의 변환' 이다. 다시 말하면 입력 데이터를 기반으로 expectation(기댓값, 기대출력)에 가깝게 만드는 유용한 표현(representation)을 학습(learning)하는 것이다. 여기서 표현이란.. 데이터를 인코딩(encoding)하거나 묘사하기 위해 데이터를 바라보는 다른 방법을 말한다. 예를 들어 컬러 이미지는 RGB format(빨,녹,파)이나 HSV format(색상,채도,명도)으로 인코딩 될 수 있으며, 이들은 같은 데이터의 두 가지 다른 표현이다. 상황에 따라 A표현으로는 해결하기 힘든 문제가 B표현으로는 쉽게 해결될 수 있다. 예를들어 '이미지에 ..

Keras 정의, 특징, 사용법

케라스란? 대표적으로 텐서플로(TensorFlow)는 구글에서 공개한 오픈 소스로 전 세계적으로 가장 많이 사용한다. lua(루아) 기반이었던 Torch(토치)는 파이썬을 기반으로 한 파이토치(PyTorch)로 바뀌었고, 많이 이용 중이다. 케라스(Keras)는 텐서플로 다음으로 사용자가 많다. 직관적인 흐름으로 코드를 작성할 수 있어 다른 프레임워크에 비해 추상화가 굉장히 잘 되어있다. 그리고 백엔드로 텐서플로, Theano(씨아노), CNTK, MXNet을 사용한다. 케라스는 모델을 빠르게 구현하거나 여러가지 방법으로 테스트하고 실행할 때 많이 사용하며, 운영 환경과 디테일한 모델을 구현하려 할 때 텐서플로로 재구현 하기도 한다. 케라스를 사용해 컴퓨터 비전부터 자연어 처리까지 이미지 분류, 시계열 ..

텍스트 데이터 전처리 - 1) 토큰화

텍스트의 토큰화(Tokenization) 텍스트는 단어별, 문장별, 형태소별로 나눌 수 있다. 이렇게 작게 나누어진 하나의 단위를 토큰(token)이라고 한다. 그리고 입력된 긴 텍스트를 잘게 나누는 과정을 토큰화(tokenization) 라고 한다. 1) enumerate, split words = "Strawberry, Orange, Coconut, Lemon, Banana!;" for count, ele in enumerate(words[:5]): print(count, ele) >> 0 S >> 1 t >> 2 r >> 3 a >> 4 w words.split(', ') >> ['Strawberry', 'Orange', 'Coconut', 'Lemon', 'Banana!;'] 2) 정규식 사용 #..

NLP 기초 설명

0. NLP의 목표 : 유용한 업무 수행을 위해서 Natural Language(사람의 언어)를 컴퓨터가 처리하고 이해할 수 있도록 하는 것 1. NLP에 사용하는 데이터 텍스트 데이터 시계열 데이터 시퀀스 데이터 2. NLP에 사용하는 기본 딥러닝 모델 RNN(Recurrent Neural Network), 1D 컨브넷(1D Convnet) 등 (그 외 RNN을 보완한 다양한 모델이 있음.) 3. 전처리 텍스트 자료를 모았다고 해서 이를 딥러닝에 그대로 입력할 수 있는 것은 아니다. 컴퓨터 알고리즘은 수치로 된 데이터만 이해할 뿐 텍스트를 이해할 수 없기 때문이다. 따라서 텍스트를 정제하는 전처리 과정이 꼭! 필요하다. 4. NLP+Deep Learning Model 응용 - 글의 주제나 책의 저자 식..

활성 함수(Activation Function) 비교

Step, Sigmoid, Tanh, ReLU, Leaky ReLU, PReLU, ELU, Maxout, Softmax Function Github Link 🔽 자세한 코드 gggggeun/study Contribute to gggggeun/study development by creating an account on GitHub. github.com 1. 계단함수 Step function import numpy as np import matplotlib.pyplot as plt import math # 샘플데이터 x = np.array([-1, 1, 2]) # 0 보다 클 경우 1 y = x>0 y = y.astype(np.int) def step_function(x) : return np.array(..

MNIST - practice1,2 + 자세한 설명

작업 순서 학습시킬 준비를 한다.(신경망 만들기, compile, 전처리) train_images와 train_labels를 네트워크에 주입한다. 네트워크는 이미지와 레이블을 연관시킬 수 있도록 학습한다. test_images에 대한 예측을 네트워크에 요청하면 그 예측이 test_labels와 맞는지 확인할 것이다. 1. tesorflow 사이트 초보자용 가이드 (연습1) tensorflow사이트 www.tensorflow.org/tutorials/quickstart/beginner?hl=ko import pandas as pd !pip install tensorflow-gpu==2.0.0-rc1 import tensorflow as tf mnist = tf.keras.datasets.mnist (x_t..

신경망의 구성, 구조 with python

1. 신경망의 구성 신경망은 input layers(입력층), hidden layers(은닉층), output layers(출력층)으로 나뉩니다. 사실 은닉층의 수가 최소 2개 이상이어야 deep하다고 할 수 있습니다. 즉, layer(층)이 총 3개 이상인 것을 신경망(딥러닝)이라고 합니다. (층을 셀 때 입력층은 포함x) 위의 그림은 단일 퍼셉트론으로 입력층과 활성화함수, 출력층으로만 이루어져 있습니다. 가운데 노드는 입력층에 가중치를 곱하고 Bias를 더한 선형결합 연산 후 활성함수를 거치면 출력값이 도출됩니다. 그럼 위의 그림은 무엇일까요? 가운데 hidden layer(은닉층)이 1층 있습니다. 은닉층이 1개 이상이면 다층 퍼셉트론 이라고 합니다. 하지만 딥러닝(신경망)이라고 할 수는 없습니다...

퍼셉트론의 한계, XOR

퍼셉트론은 Frank Rosenblatt이 1957년 고안한 알고리즘입니다. 그러나 인공지능 선구자 Marvin Minsky 교수가 퍼셉트론의 한계에 대해 1969년 논문으로 발표했습니다. 퍼셉트론의 한계에 대해서는 XOR(exclusive OR)문제로 풀어볼 수 있습니다. XOR 문제는 디지털 논리회로에 등장하는 개념입니다. 컴퓨터는 두 가지의 디지털 값(0과 1)을 입력해 하나의 값을 출력하는 회로가 모여 만들어지는데, 이 회로를 GATE(게이트)라고 합니다. 그리고 XOR를 표로 나타낸 것을 진리표라고 합니다. 1. AND GATE # 위 예시를 python으로 제작을 해보겠습니다. # w1, w2는 가중치(weight)를 의미하는 변수입니다. def AND(x1, x2): w1, w2, theta..

신경망 관련 개념 정리

1. 퍼셉트론이란? 신경망을 이루는 가장 작은 단위. 입력값과 활성함수로 출력값을 넘기는 가장 작은 신경망 단위. 다수의 신호를 입력으로 받아 하나의 신호를 출력. 0과 1의 값. 2. 신경망(딥러닝)이 중요한 이유 단순 계산만이 아닌 이전에 컴퓨터가 잘 못하는 사물인식, 분할기술, 자연어 처리 등의 영역까지 사람보다 더 뛰어난 성과를 보이기 때문에. 3. 신경망은 오랜기간 동안 관심을 못받다가 어떻게 다시 대두되었나? 컴퓨터 성능, 인터넷 속도 증가, 데이터 용량 증가 등으로 딥러닝 기술이 눈에 띄게 발전해 가치를 인정받아 여러분야에 활용되게됨. 4. 딥러닝의 장점과 단점 장점 : =2번 단점 : 데이터가 적을 때는 성능을 발휘하지 못함. 즉, 단순한 문제를 풀 때는 쓸모가 없음. 5. 딥러닝(신경망)..

tensorflow.keras 손글씨 MNIST

www.youtube.com/watch?v=TV3oplqa5VA(유튜브 영상)참고 !pip install tensorflow-gpu==2.0.0-rc1 import tensorflow as tf #손글씨모듈 from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout, Flatten from tensorflow.keras.layers import Conv2D, MaxPooling2D from tensorflow.keras.utils import to_categorical from tensorflow.keras.pr..

728x90
반응형