AI/Fundamental 15

LSTM (Long Short-Term Memory) 신경망 모델 공부하기

이 글을 읽기 전에 해당 내용은 08-02 장단기 메모리(Long Short-Term Memory, LSTM) - 딥 러닝을 이용한 자연어 처리 입문 을 보고 공부한 내용입니다. 잘못된 부분이 있다면 댓글 부탁드립니다. 아래의 내용을 보기 전에 RNN을 먼저 공부하고 오시는 것을 추천드립니다! https://kyull-it.tistory.com/139 RNN(Recurrent Neural Network) 순환신경망 공부하기 08-01 순환 신경망(Recurrent Neural Network, RNN) - 딥 러닝을 이용한 자연어 처리 입문 글을 참고하여 공부한 내용을 정리하였습니다. RNN은 Input값과 Output값을 Sequence 단위로 끊어서 처리하는 Sequence Model kyull-it...

AI/Fundamental 2023.08.28

Activation Function 활성화 함수 (Sigmoid, Softmax, tanh, ReLU) 사용 이유, 그래프, 성질

* 공부용으로 자료 조사한 것들을 토대로 정리한 내용입니다. 틀린 내용이 있다면 댓글 부탁드립니다. 활성화 함수란, 비선형 신경망 모델을 만들기 위해 각 뉴런의 Linear Function(Weighted Sum, Affine Transformation,,,)의 결과값에 적용해 주는 함수이다. 하나를 예로 들면, 딥러닝을 위한 신경망 모델(neural networks)의 각 층(Layer)에서 각 뉴런(Neuron)에 Input Data(x)가 입력되면 Affine function(f(x) = z = wx + b), 활성화함수(g(wx + b))를 통해 Output Data가 출력값으로 나온다. g(f(x))라는 합성함수 형태가 하나의 뉴런 안에서 수행되는 연산이다. 이 출력값을 다음 레이어의 입력값으로..

AI/Fundamental 2023.08.24

RNN(Recurrent Neural Network) 순환신경망 공부하기

08-01 순환 신경망(Recurrent Neural Network, RNN) - 딥 러닝을 이용한 자연어 처리 입문 글을 참고하여 공부한 내용을 정리하였습니다. 순서를 가지는 Sequence 데이터를 입력값과 출력값으로 가지는 경우 Sequential Model을 사용할 수 있다. 그 중 가장 처음 고안된 신경망 모델이 바로 RNN이다. 데이터 시퀀스를 처리하는 모델로 각 시간 단계를 독립적인 레이어로 처리할 수 있게 구성되어 RNN unrolling technique라는 용어가 사용된다. (참고논문) LSTM이나 GRU도 근본적으로는 RNN을 기반으로 발전된 모델들이다. 시퀀스 모델은 기계번역, 문서 요약 등의 자연어 처리 모델에서 주로 활용된다. RNN모델의 architecture 구성을 자세히 살..

AI/Fundamental 2023.06.14

Confusion Matrix로 분류모델 성능평가 지표(precision, recall, f1-score, accuracy) 구하는 방법

먼저 Confusion Matrix(혼동행렬)란, 이진분류(Binary Classification) 나 다중분류(Multiclass Classification)에서 어떤 모델의 분류가 잘 되었는지 평가하기 위해 모델의 결과를 시각화한 표 또는 행렬이다. Binary Classification 이진 분류란, 1 또는 0 = Positive 또는 Negative 둘 중에 하나로 분류되는 경우를 이진 분류라고 한다. 쉽게 예를 들면, 어떤 사진을 보고 이 사진이 강아지냐 고양이냐를 판단하는 것을 이진 분류라고한다. 이진 분류의 Confusion Matrix는 실제값=정답값=Actual과 예측값=Predicted를 행 또는 열로 가지고, 일치하는 개수를 행렬의 원소로 입력한 모습이 된다. 예를 들어 강아지냐 고..

AI/Fundamental 2023.01.26

[머신러닝] 학습, 검증, 테스트 데이터 쪼개는 법 : random_split PyTorch), train_test_split(Scikit-learn)

1. Pytorch * MNIST데이터를 예시로 불러와 train 데이터셋을 train과 validation 데이터셋으로 나누어 보는 작업 - 데이터셋을 쪼갤 때, torch.utils.data.random_split 모듈을 활용하면 된다. - random_split(pytorch에서 불러온 데이터셋 변수, [len(train_dataset), len(validation_dataset)]) 로 간단하게 분리가 가능하고, 데이터를 쪼개면서 데이터를 뒤섞고 싶을 때, generator 옵션을 사용하면 된다. (python 내장 함수인 help를 활용하여 random_split에 파라미터들을 미리 확인할 수 있다.) # 예시 코드 train_dataset = MNIST(os.getcwd(), download=..

AI/Fundamental 2022.08.26