본문 바로가기

AI_basic35

[Deeplearning Part.8-1] RNN 기본구조 이 전에 알아본 Word2vec의 CBOW모델을 다시보면, 맥락 안의 단어 순서가 무시된다는 단점이 있습니다. 예시로 나온 문장 중 say에 대한 윈도우는 "you say goodbye"가 되는데, 이는 (you, say)와 (say, you)를 같은 맥락으로 취급합니다. 따라서 맥락 내의 단어 순서도 고려한 모델이 바람직한데, 여기서 등장하는 것이 순환 신경망(Recursive Neural Network)입니다. RNN t는 각 단어의 순서를 기준으로 인덱싱 한 숫자입니다. 우변을 좌변처럼 하나의 계층으로 본다면 RNN으로 표시된 사각형의 층을 지나서 나온 output이 계속해서 다시 RNN계층으로 들어가게 됩니다. 따라서 값이 계속 순환하고 있습니다! RNN한 계층의 계산수식을 보면, 이전 RNN계층.. 2022. 1. 24.
[Deeplearning Part.7-1] 자연어 처리와 Word Embedding NLP란 NLP란 자연어 처리란 뜻으로, 자연어 생성(Meaning ->Text)과 자연어 이해(Text -> Meaning) 두 가지를 포함하는 영역입니다. NLP의 영역 감정 분석(Sentiment Analysis) 요약(Summarization) 기계 번역(Machine Translation) 질문 응답(Question Answering) 문자를 숫자로 표현하는 법 Token과 vocabulary 각 Token별로 indexing했을 때 문제점 1) feature engineering의 label encoding처럼 별 의미 없을 듯?? 2) 학습한 말뭉치에 없는 Token이 나온다면?? -> OOV(Out-Of-Voca) OOV문제를 줄이기 위해 큰 기업의 연구에서는 말뭉치(Corpus)를 잘 o.. 2022. 1. 22.
[Pytorch Part.5] Augmentation과 CNN DATA Augmentation이란? 복잡한 모델을 만들기 위해서는 다량의 데이터가 필요하지만 우리가 갖고 있는 데이터는 한정적입니다. DATA Augmentation은 이를 보완하기 위해 데이터를 임의로 변형해 데이터의 수를 늘려 다양한 feature를 뽑는 방법입니다. 위 사진과 같이 여러 기법을 사용하는데 대표적인 기법은 다음과 같습니다. Flip : 이미지를 랜덤하게 좌우 또는 상하 반전시킵니다. Scaling : 이미지를 확대 또는 축소시킵니다. Rotation : 이미지를 회전시킵니다. Crop : 이미지의 일정 부분을 잘라 사용합니다. Cutout : 이미지의 일부를 사각형 모양으로 검은색을 칠합니다. Cutmix : 두 이미지를 합쳐 놓고 이미지의 Label을 학습시킬 때 각각의 이미지가 .. 2022. 1. 14.
[Pytorch Part.4] AutoEncoder AutoEncoder란? AutoEncoder란 비지도 학습 방식으로 훈련된 인공 신경망으로, 먼저 데이터에 인코딩 된 표현을 학습한 다음, 학습된 인코딩 표현에서 입력 데이터를 생성하는 것을 목표로 한다. 따라서 , 오토인코더의 출력은 입력에 대한 예측이다. AE를 활용하면 Input data를 Latent Space에 압축시켜 이 값을 새로운 Feature로 사용할 수 있는데, Dimension을 줄일 수 있다는 장점이 있다. AE의 응용 이미지 생성 이미지 변환 이미지 초 고해상도 이미지 복원 이미지 설명(caption) 대표적인 AE 1. Stacked AE Stacked AE는 위 그림과 같이 Hidden Layer를 다시 input으로 사용해 AE를 반복적으로 수행 후 각 Hidden Laye.. 2022. 1. 14.
[Deeplearning Part .6-1] CNN CNN CNN은 합성곱 신경망이며, 이미지 인식과 음성 인식 등 다양한 곳에서 사용됩니다. CNN에서는 이 전 신경망과 달리 합성곱 계층convolutional layer와 풀링 계층pooling layer가 등장합니다. CNN의 기본 1. 합성곱 연산 합성곱 연산에서는 필터를 적용시킵니다. 위 그림의 가운데 행렬이 필터이며, 입력층에서 같은 크기를 갖는 윈도에 단일 곱셈 누산을 하고, 이를 출력합니다. 출력층의 행과 열 개수는 필터 크기의 윈도우를 입력층에서 몇 개 가질 수 있는지에 따라 결정됩니다. 일반적인 Affine 변환의 경우, 데이터를 1차원으로 평탄화하여 입력했지만, 위와 같이 합성곱 연산을 할 경우 데이터의 형상을 살릴 수 있습니다. 2. 패딩 padding 입력층의 주변을 폭 1짜리 0의.. 2022. 1. 9.
[Deeplearning Part.5] 학습 관련 기술들 매개변수 갱신 신경망 학습의 목적은 손실함수의 값을 가능한 한 낮추는 매개변수를 찾는 것입니다. 지금까지 확률적 경사 하강법(SGD)를 통해 가중치를 업데이트하는 법을 알아보았는데, SGD 외 다른 매개변수 최적화 기법을 소개합니다. 1. 모멘텀 Momentum 모멘텀은 운동량을 뜻하며, 가중치 업데이트 수식은 다음과 같습니다. 여기서 v라는 변수는 물리에서 말하는 속도에 해당합니다. αv항은 기울기 방향으로 힘을 받아 가중치가 가속되어 업데이트하는 형상을 띄게 됩니다.(α는 보통 0.9 등의 값으로 설정합니다.) 2. AdaGrad 학습률을 효과적으로 정하는 기술로 학습률 감소 learning rate decay가 있습니다. 또한 학습률을 서서히 낮추는 간단한 방법은 매개변수 "전체"의 학습률 값을 일.. 2022. 1. 9.
[Deeplearning Part.4] 오차역전파법 오차역전파법 경사하강법으로 손실함수의 최솟값을 찾으려는 방법을 이전 장에서 알아봤습니다. 오차역전파법은 오차를 역으로 전파하는 방법으로 가중치 매개변수의 기울기를 효율적으로 계산하는 방법입니다. 오차역전파법을 위한 도구로 연쇄 법칙을 알아보고, 신경망에서의 오차역전파 전체를 한 번 보겠습니다. 1. 연쇄 법칙 Chain rule 오차역전파법을 이해하기 위해서는 기본적으로 연쇄 법칙에 대해 이해해야합니다. 연쇄 법칙은 합성함수의 미분을 각 함수의 미분의 곱으로 나타내는 것입니다. 위 식과 같은 합성함수 z가 있을 때 미분은 다음과 같이 나타낼 수 있습니다. 우변의 t가 지워져 좌변과 같아지는 것을 알 수 있습니다. 여기서 우변의 두 분수는 z를 t로 미분한 것과 t를 x로 미분한 것입니다. 이것은 x ->.. 2022. 1. 6.
[Deeplearning Part.3] 신경망 학습 신경망 학습이란 신경망 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻합니다. 한 조합의 가중치 매개변수는 특정한 예측값들을 만들고, 그 예측값과 실제값의 차이를 이용해 손실함수를 결과값을 만들 수 있습니다. 이제 이 손실함수의 결과값을 가급적 작게 만드는 방향으로 가중치 매개변수를 조절하여 신경망의 학습이 이루어집니다. 학습의 전환 세 번째 학습이 다른 두 학습과 다른 점은 신경망이 데이터의 "있는 그대로"를 학습한다는 것입니다. 두 번째 접근방식은 특징을 사람이 설계했지만, 신경망은 이미지에 포함된 특징까지도 기계가 스스로 학습합니다. 1. 손실함수 1) 평균 제곱 오차 MSE y는 신경망의 출력, t는 정답 레이블, k는 데이터의 차원 수를 나타냅니다. y-t에 제곱.. 2022. 1. 6.
[Pytorch Part.2] AI Background 인공지능이란? 인공지능을 쉽게 정의하면 "컴퓨터가 데이터를 이용해 학습할 수 있도록 하는 기술"입니다. 그 중에는 머신러닝, 딥러닝이 포함되어있고, 딥러닝은 인공지능의 획기적인 발전을 이끌었습니다. 1. 인공지능의 사례 이미지 분류 인간이 이미지를 분류하는 성능은 약 95%로 알려져있습니다. 2010년부터 인공지능 모델을 이용해 이미지를 분류하는 대회를 보면, 2015년에 "Resnet"이라는 모델이 약 96%의 성능을 기록하면서 인간의 능력을 뛰어넘기 시작했습니다. 객체 탐지 객체 탐지(Object Detection)은 어떤 이미지 및 비디오 속에 포함돼 이쓴ㄴ 무레에 대해 해당 물체가 어떤 물체인지를 분류하는 문제와 물체의 위치를 찾아내는 문제입니다. 자율주행 자동차, CCTV 등과 같은 카메라 기술.. 2022. 1. 6.