DeepLearning29 [논문리뷰]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 이 논문을 읽기 전에 알면 좋겠다고 생각한 것(내가 몰랐던 것) 1) NAS : Neural architecture search, 예를 들어 CNN모델의 경우 task와 데이터셋에 따라 최적의 모델 구조가 달라지는데, 이를 자동으로 task에 가장 최적인 네트워크 구조를 편리하고 빠르게 탐색하는 방법론을 연구하는 분야 2) FLOPS : floating point operations per second ->초당 부동소수점연산(횟수) (모델의 효율성을 측정하는 용도인 듯) Abstract 지금의 CNN모델들은 자원(대표적으로 GPU성능인듯)이 허락하는 내에서 연산량을 키워왔다. 이 논문에서 심플하지만 효율적인 복합계수(compound coefficient)를 사용해 모델의 깊이/너비/해상도를 스케일링하는 .. 2022. 1. 23. [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.1] Basic Skill 1. Scalar 우리가 아는 선형대수에서 배우는 스칼라 즉 상숫값입니다. torch 내 tensor method를 이용해 스칼라 값을 정의할 수 있습니다. import torch scalar1 = torch.tensor([1.]) scalar1 = torch.tensor([2.]) print(scalar1) #tensor([1.]) tensor([1.])가 출력됩니다. 이러한 스칼라값들은 사칙연산 기호 또는 내장 메서드를 이용해 계산할 수 있습니다. torch.add(scalar1, scalar2) # 덧셈 # scalar1 + scalar2 torch.sub(scalar1, scalar2) # 뺄셈 # scalar1 - scalar2 torch.mul(scalar1, scalar2) # 곱셈 # sc.. 2022. 1. 5. 이전 1 2 3 4 다음