본문 바로가기

머신러닝/딥러닝

(6)
CNN의 오토인코더(Autoencoders) 오코인코더란? 입력을 출력으로 복사하는 신경망이다. 그림을 보면 input image가 있고 hidden layer의 수를 입력층보다 작게 해서 데이터를 압축하거나 노이즈를 추가한 이후에 원본 이미지를 복원한다. 오토인코더를 이용해서 입력을 출력으로 바로 복사하지 못하도록 하며 데이터를 효율적으로 표현하는 방법을 학습하도록 제어한다. 오토인코더는 인코더와 디코더로 구성되어있다. 인코더는 입력을 내부 표현으로 변환하고 디코더는 내부 표현을 출력으로 변환한다. Convolution autoencoder란? Convolution autoencoder는 합성곱 계층을 이용한 방법이다. 가중치의 형태를 CNN형태로 가져온다.
이미지 분할(Image Segmentation), 이미지 증강(Image Augmentation), 객체인식(Object Recognition) 이미지 분할이란? 이미지에서 객체가 있는 위치, 개체의 모양, 특정 픽셀이 어떤 개체해 속하는지 알고 싶을 때 이미지를 분할하여서 이용하면 편할 것이다. 그래서 이미지의 픽셀의 각각의 레이블이 부여된다. 간단하게 말하면 이미지 분할은 이미지를 픽셀 단위의 분할로 출력하도록 신경망을 훈련시키는 것이다. 이미지 분할을 이용할 때는 Unet을 대부분 이용한다. Unet은 인코더와 디코더를 포함하는데 미리 훈련된 모델을 인코더로 이용할 수 있다. 데이터 증강이란? 이미지를 회전키거나 바꾸어서 훈련 데이터의 다양성을 증가시키는 기술이다. 객체인식이란? 객체인식은 사전에 학습된 이미지 분류 신경망을 이용하여 다중 객체를 검출하는 것이다.
spaCy를 이용한 자연어처리(1) 먼저 spacy의 english를 import 한다. spacy에서 한국어는 아직 지원되지 않으므로 영어로 자연어 처리를 한다. English()객체를 nlp로 만들어준 다음 nlp안에 Hello world!!를 넣는다. for문으로 돌려보면 token.text안에는 각각의 내용들이 들어있다. from spacy.lang.en import English nlp = English() doc = nlp("Hello world!!") for token in doc: print(token.text) span = doc[1:3] print(span.text) doc2 = nlp("It is 5coins...") print("Index : ", [token.i for token in doc]) print("Text..
딥러닝 독학 3) 신경망 학습 신경망은 데이터에 따라서 가중치의 값을 자동으로 결정해준다. rudolf-2434.tistory.com/31 딥러닝 독학 1)퍼셉트론에서부터 신경망 퍼셉트론이란? 퍼셉트론은 딥러닝의 기원이 되는 알고리즘으로 딥러닝을 이해하기 위해서 꼭 필요한 개념이다. 퍼셉트론은 여러가지의 신호를 input으로 하여 하나의 output 을 내는 알고리즘이다 rudolf-2434.tistory.com 위에서 정리한 퍼셉트론의 경우 사람이 직접 매개변수의 값을 정했다. 실제 신경망에서는 매개변수가 수천~수만가지 이기 때문에 퍼셉트론 방식처럼 사람이 정할수는 없기 때문에 신경망은 매우 중요하다. 신경망 학습에 필요한 손실함수 신경망 학습에서는 현재 상태를 하나의 지표로 표현한다. 가중치 매개변수를 찾아 지표를 좋게 만들어주는..
딥러닝 독학 2) 소프트맥스 함수 소프트맥스를 들어가기 전 항등 함수 먼저 살펴보겠다. 항등함수는 우리가 고등학교 시절 항등원을 배웠듯 입력을 그대로 출력하는 함수이다. 그래서 항등함수를 사용하면 입력 신호가 출력 신호가 되어서 그대로 출력된다. 소프트맥스 함수란? 소프트맥스 함수는 분류 문제를 풀 때 이용된다. 소프트맥스 함수를 쓰면 각각의 점수를 클래스별 확률로 바꾸어 각각 점수가 총 합쳐서 1이 되게 한다. 자연상수e는 exp()로 파이썬에서 구현할 수 있다. 여기서 보면 k는 출력층의 뉴런 수이고 i는 i 번째 출력을 뜻한다. 이렇게 보면 소프트맥스 함수에 대해서 이해가 잘 가지 않지만 코드를 보면서 이해해보자. # 임의의 1X3 배열을 만들어준다. 입력값이다. a = np.array([0.2, 3.3, 3.0]) # 지수 함수를..
딥러닝 독학 1)퍼셉트론에서부터 신경망 퍼셉트론이란? 퍼셉트론은 딥러닝의 기원이 되는 알고리즘으로 딥러닝을 이해하기 위해서 꼭 필요한 개념이다. 퍼셉트론은 여러가지의 신호를 input으로 하여 하나의 output 을 내는 알고리즘이다. 여기서 보면 X1, X2, X3은 입력신호, y는 출력신호이고 w1, w2, w3은 가중치를 말한다. 각각의 원은 노드 혹은 뉴런이라고 부르는데 하나의 입력 원이 다른 원으로 보내질 때 가중치가 곱해진다. 이 신호의 합이 임계값을 넘어갈 때만 1을 출력하고 넘어가지 않으면 0을 출력한다. 여기에 bias를 추가해서 식을 써본다. bias란 각각의 노드가 얼마나 쉽게 활성화되는지를 제어한다. bias를 추가해서 그림을 그려보겠다. 이 그림은 가중치가 b이고 입력이 1인 뉴런이다. 1, x1, x2, x3 이렇게 ..