딥러닝 18

[Python] 딥러닝 자연어 처리를 위한 딥러닝

자연어 처리 Process 1. 자연어 전처리(Preprocessing) 2. 단어 표현 (WordEmbedding) 3. 모델 적용 (Modeling) 원 상태 그대로의 자연어는 전처리 과정이 필요함 자연어는 오류를 어떻게 없앨 것인가 그리고 의미랑 전혀 상관없는 단어를 어떻게 없앨지 오류를 없애는 것을 타이핑을 잘못 했거나, 오타가 있을 경우, 컴퓨터는 단어인가 라고 생각 할 수 있기 때문에 오류를 전처리 해서 없애줘야 함 문장을 나누는것을 토큰으로 나누게 됨 Noise Canceling “안녕하 세요. 반갑 스니다.” => “안녕하세요. 반갑습니다.” Tokenizing 문장을 토큰(Token)으로 나눔, 토큰은 어절, 단어 등으로 목적에 따라 다르게 정의 “딥러닝 기초 과목을 수강하고 있습니다.”..

[Python] 딥러닝 이미지 처리(CNN)

이미지 분류 컴퓨터에게 이미지는 각 픽셀 값을 가진 숫자 배열로 인식 다양한 방법으로 이미지가 변형될 수 있는데 그러한 변화에도 강인한 이미지 처리를 어떻게 할 것인가 CNN 딥러닝 이전 컴퓨터 비전은 각 특징을 찾아서 특징을 중점으로 인식 이미지 데이터 확인해보기 Numpy, PIL, tensorflow.keras 등을 이용하여 이미지를 Numpy 배열로 바꿔보고, 이를 통해 이미지가 어떻게 이루어졌는지 확인 import pandas as pd import numpy as np import PIL import matplotlib.image as img import matplotlib.pyplot as plt from elice_utils import EliceUtils elice_utils = Elic..

[Python] 딥러닝 학습 속도 문제와 최적화-2

초기값 설정 초기값을 잘못 설정한다면 sigmoid를 통하고 하면서 w값을 가야되는데, 초기값에서 크게 벗어나지 못하는 문제가 발생 초기값을 잘 설정하는게 중요함 모델을 여러번 학습하다 보니, 학습된 모델이 다르게 나오게 된다. Weight Initializtion은 새로운 방법으로 여러 연구가 있었음 초기화 설정 문제 해결을 위한 Naïve한 방법 -표준 정규분포를 이용해 초기화 -표준편차를 0.01로 하는 정규분포로 초기화 Nural Net 굉장히 크고 노드가 많다면 하나의 레이어에 잇는 100개의 Normal한 Naive한 방법인 평균0 표준편차 1인 정규화 방법을 쓰면, 나중에는 양쪽 끝으로 몰리는 현상이 발생함 이러한 표준편차를 줄여보는 시도를 함 Xavier 초기화 방법 + Sigmoid 함수..

[Python] 딥러닝 텐서플로 모델 구현하기

데이터셋 준비하기 : Epoch와 Batch Epoch: 한 번의 epoch는 전체 데이터 셋에 대해 한 번 학습을 완료한 상태 Batch: 나눠진 데이터 셋 (보통 mini-batch라고 표현) iteration는 epoch를 나누어서 실행하는 횟수를 의미 data = np.random.sample((100,2)) labels = np.random.sample((100,1)) # numpy array로부터 데이터셋 생성 dataset = tf.data.Dataset.from_tensor_slices((data, labels)) dataset = dataset.batch(32) 딥러닝 모델 구축 텐서플로우의 딥러닝 모델을 간단하게 진행할 때 많이 사용하게 됨 하나의 layer에서 node가 몇개가 될것인..

[Python] 딥러닝 텐서플로(TensorFlow)

유연하고, 효율적이며, 확장성 있는 딥러닝 프레임워크 대형 클러스터 컴퓨터부터 스마트폰까지 다양한 디바이스에서 동작한다. 텐서 텐서는 1-D, 2-D, 3-D 데이터는 텐서로 만들어서 다차원 배열로 만들어짐 텐서(Tensor) + 플로우(Flow) 텐서는 1-D, 2-D, 3-D 데이터는 텐서로 만들어서 다차원 배열로 만들어 진다. 텐서를 통해서 여러가지 사칙연산을 진행한다고 했을 때, 이에 대한 Output을 만듬 예를 들면, Input Tensor와 Feature Flow는 output까지 가는것을 볼 수 있다. 상수텐서 value : 반환되는 상수값 shape : Tensor의 차원 dtype : 반환되는 Tensor 타입 name : 텐서 이름 import tensorflow as tf # 상수형..

[Python] 딥러닝 다층 퍼셉트론

비 선형적인 문제 해결 Input layer와 Output layer 두가지만으로 구분을 할 수 없다는 것을 깨닫고 둘 사이에 다른 것을 넣은 것을 연구하였고, 그것이 Multilayer 퍼셉트론이 만들어 졌다. 이 사이에 NAND, OR 등을 넣고 이들을 연결하는 방식으로 구성하였다. 이것의 경우, 선을 2개 그어서 이를 표현하였는데 XOR 연산은 하나의 레이어로는 표현하는게 불가능 하지만, NAND와 OR 연산을 함께하면 구분이 가능하다는 것이다. 이를 통해 다층 퍼셉트론이 만들어 졌다.그리고 중간에 있는것을 Hidden Layer라고 하여 만들어지게 되었다. Hidden Layer가 3층 이상일때 Deep Learning단어를 사용하게 된다. Hidden Layer층이 많을 수록 표현이 강력해진다고..

[Python] 딥러닝 퍼셉트론 선형분류기

https://kdc-elice.imweb.me/ 엘리스 내일 패스, 가볍게 코딩 시작 엘리스 내일패스를 통해 파이썬, SQL을 활용한 데이터 분석부터 웹개발, R 등 핫한 개발 주제들을 쉽고 편하게 수강할 수 있습니다. kdc-elice.imweb.me 엘리스 코딩 내일패스 인공지능 과정을 수강하고 작성 퍼셉트론 선형 분류기 퍼셉트론은 간단하면서도 Powerful한 성능을 낸다. 사람의 신경계를 모티브로 가져온 모델로, 퍼셉트론이라는 작은 유닛이 모여서 인공신경망을 만들고, 사람의 지능을 따라할고 하는 인공지능을 만든다. 논리 회로의 정리 일정한 논리 연산에 의해 출력을 얻는 회로를 의미 And Gate A와 B 가 있으면 둘다 참이여야지 1이고 나머지는 0이다. OR Gate A와 B가 둘다 0이면 ..

[python] 딥러닝 퍼셉트론

https://kdc-elice.imweb.me/ 엘리스 내일 패스, 가볍게 코딩 시작 엘리스 내일패스를 통해 파이썬, SQL을 활용한 데이터 분석부터 웹개발, R 등 핫한 개발 주제들을 쉽고 편하게 수강할 수 있습니다. kdc-elice.imweb.me 엘리스 코딩 내일패스 인공지능 과정을 수강하고 작성 인공신경망 정의 딥러닝의 기본이 되는, 중심적인 개념은 인공신경망이며, Input 과 Output 사이의 안에 있는 여러가지 방법론을 표현함 Hidden layer가 인공신경망에서 가장 중요한 부분임 영감 자체는 생물학, 뉴런을 가지고 있고, activation이 되면 이를 활성화 시킴 인공 신경망의 특징 데이터가 들어가면 데이터의 회귀분석, 분류, 유의미한 패턴이 있다면 OUTPUT를 나타낸다. 이 ..