딥러닝 공부하기
-
[딥러닝] 이미지 데이터가 부족할 때, 문제점과 해결 방법딥러닝 공부하기 2023. 12. 27. 14:38
▶︎ 데이터가 부족할 때 생기는 문제점 → train data 가 부족하면, 그 안에서만 학습되기 때문에 과적합 발생 확률이 높습니다. 그래서 일반적인 특징을 찾아내지 못해 test data나 새로운 데이터가 들어올 때 일반화 성능이 낮아지는 문제가 생깁니다. ▶︎ 이를 해결하기 위해 어떻게 해야할까요? 1. 간단한 모델로 바꿔 일반적인 특징을 파악할 수 있도록 합니다. (오버피팅을 방지하기 위해 모델 자체의 복잡도를 줄이는 것은 이미지뿐만 아니라 다른 형태의 데이터에서도 똑같이 적용됩니다!) : 비선형모델을 선형모델로 바꾸거나, L1 또는 L2 정규화를 적용하여 가중치의 크기를 제한함으로써 모델이 특정 피처에 너무 의존하지 않도록 합니다. 2. 모델을 바꾸거나 특정 기능을 추가하여 일반화 성능을..
-
[딥러닝] CNN 활용하여 MNIST 예제 쉽게 따라하기딥러닝 공부하기 2023. 12. 27. 00:09
▶︎ CNN(Convolutional Neural Network) 이란? → 이름에서 알 수 있듯이 합성곱(새로운 연산)을 활용한 신경망 딥러닝 모델입니다. → 필터가 상하좌우 이동하면서 데이터와 convolution을 하여 특징을 추출합니다. 일반적인 Dense layer보다 적은 수의 파라미터θ로 데이터의 주요 특징을 찾아낼 수 있습니다. ▶︎ 합성곱을 쓰는 이유는 무엇이고, 어떤 데이터에 적합해? → 합성곱을 쓰는 이유는 "적은 수의 파라미터θ로 데이터의 주요 특징을 찾아낼 수 있기 때문." 입니다 → 필터를 이동시키면서 서로 다른 데이터의 특성을 추출하기 때문에 공간적(지역적, 위치적, 계층적) 패턴을 가지고 있는 이미지, 신호 데이터에 적합합니다. → 필터는 우리가 원하는 목적에 맞게 선정하..
-
[딥러닝] 개체명 인식 NER 초간단 실습딥러닝 공부하기 2023. 12. 21. 01:41
► 개체명 인식(Named Entity Recognition, NER) 이란? → 자연어 처리(NLP) 분야에서 텍스트에서 중요한 개체명을 인식하고 분류하는 전처리 작업 → 개체명의 예로는, 사람, 장소, 조직명 등이 있습니다. → 중요한 개체명을 파악하고 인식해야 문맥에 맞는 올바른 답을 내릴 수 있기 때문에 개체명 인식 작업은 중요합니다. ► NER의 특성은? → 각 형태소마다 개체인지 아닌지, 어떤 개체명을 가졌는지를 반환해야하기 때문에 model을 만들 때, return_sequence = True 를 사용합니다. ※ 실습의 간편성과 이해도를 위해 3개의 문장으로 실습하였습니다. 학습 성능이 좋은게 이상합니다. 저는 단지 NER을 실습해보기 위해 글을 썼지 모델 성능이 목적이 아닙니다. 언어 모델..
-
[딥러닝] LSTM으로 초간단 감정분석 모델 만들어보기딥러닝 공부하기 2023. 12. 20. 22:12
► LSTM( Long Short-Term Memory) 모델이란? → 주로 시퀀스 데이터를 처리하는 순환 신경망(RNN)의 한 종류입니다. → 기존의 RNN의 단점을 보완하여 긴 시퀀스 데이터에서 발생하는 그래디언트 소실(vanishing gradient) 문제를 해결하려는 목적으로 고안되었습니다. → LSTM은 시퀀스 데이터에서 중요한 정보를 기억하고 중요하지 않은 정보는 잊어버리는 능력을 갖추고 있습니다. 이를 위해 셀 상태(cell state)와 숨겨진 상태(hidden state)라는 두 가지 상태를 사용합니다. 각각의 상태는 시간(timestep)에 따라 업데이트되며, 이를 통해 모델은 데이터의 장기 및 단기 패턴을 학습할 수 있습니다. → LSTM은 긴 시퀀스에서 장기 의존성을 학습하는 데 ..
-
[딥러닝] 문제 종류에 따라 output layer 설계(Compile)하는 법딥러닝 공부하기 2023. 12. 19. 14:09
우리가 풀어야 하는 문제가 회귀인지, 이진분류인지, 다중분류인지에 따라 output layer의 퍼셉트론 갯수와 output layer의 활성화 함수, 손실함수가 달라집니다. 손실함수는 또한 평가 지표로 연결됩니다. 활성화함수의 그래프나 공식을 생각해보면 어떤 문제에서 활용해야 하는지 자연스럽게 외워집니다. - 이진분류에서는 시그모이드를 쓰는데 그 이유는 0과 1로 바꿔줘야 하기 때문입니다. 그래프를 생각하면 0과 1로 분류하기 쉽죠? - 다중분류는 softmax 함수를 사용하는데 입력 벡터의 각 요소를 지수 함수로 변환하고, 각 요소를 모든 요소의 합으로 나누어 확률 분포를 생성합니다. 합이 1이 되도록 하기 위해서이죠. - 회귀문제는 아무것도 건들 필요가 없습니다! 회귀 공식을 생각하면 가중치와 독립..
-
[딥러닝] MNIST 텐서플로우 예제 쉽게 따라하기딥러닝 공부하기 2023. 12. 19. 12:27
MNIST는 딥러닝 예제로 유명하죠? MNIST 데이터는 0~9까지의 손글씨 데이터인데, 이미지를 학습하여 어떤 숫자인지 맞추는 것입니다. 28*28픽셀로 구성된 흑백 손글씨로, 학습 데이터는 6만 개, 테스트 데이터는 1만 개로 이루어져있습니다. 딥러닝 분류 예제로 많이 활용하는 MNIST 데이터로 딥러닝 학습 순서를 따라해보며 딥러닝을 더 쉽고 정확하게 이해하며 실습해보도록 하겠습니다. 1. 우선 텐서플로우 1버전을 사용하도록 하겠습니다. import numpy as np import matplotlib.pyplot as plt import tensorflow.compat.v1 as tf tf.disable_v2_behavior() import os os.environ['TF_CPP_MIN_LOG_L..