general ML, DL, NLP
-
10. 이미지 분류 사전학습모형general ML, DL, NLP/딥러닝 2022. 4. 21. 20:43
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 이미지 분류는 크게 2가지로 나뉠 수 있습니다. CNN을 사용한 이미지 분류 사전학습모형을 사용한 이미지 분류 직접 convolutional network를 구축하는 방법(from scratch) 단점 존재 - 정교한 모형을 구축하는 것이 어려움 - 성능을 높이기 위해서는 많은 학습 데이터가 요구됨 - 학습에 시간이 오래 걸림 - 매우 많은 computing power가 필요 옆의 단점들을 보완할 수 있는 방법 표에서도 알 수 있다시피 개인이 CNN을 구축하여 성능을 높이는 데에는 한계점이 존재합니다. 이를 보완하기 위해 보편적으로 이미지 분류 task 수행 시에는 사전학습모형을 사..
-
9. CNN 코드 - cats & dogsgeneral ML, DL, NLP/딥러닝 2022. 4. 21. 20:43
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 이번 포스트에서는 개와 고양이를 구분하는 cats and dogs task를 수행한다고 가정합니다. 케라스에서 데이터셋을 다운받는 것이 아닌, 사용자가 가진 이미지를 사용하려면 이미지를 폴더에 따로 따로 담아주어야 합니다. 여기서는 라벨별로 따로 담아주었습니다. 데이터를 위와 같이 정리한 후, 이전에 사용한 CNN 코드로 분류 task를 수행할 수 있습니다. (1) 첫 번째로 필요한 모든 프레임워크, 라이브러리 등을 import하는 의존성 준비 코드입니다. 1 2 3 4 5 6 7 8 9 # 의존성 준비 import tensorflow as tf from tensorflow.kera..
-
8. CNN 코드 - MNIST, Cifar-10general ML, DL, NLP/딥러닝 2022. 4. 21. 03:58
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 실제로 코드를 보면서 CNN이 어떻게 생겼는지를 살펴보려 합니다. 살펴볼 코드는 MNIST와 Cifar-10입니다. 1. MNIST - 흑백 데이터 CNN (1) 중요사항 결정 및 데이터 로드 1 2 3 4 5 6 7 8 9 10 11 # 우선적으로 정해야 할 것들을 정합니다. num_classes = 10 # 종속변수 수 # input image dimensions img_rows, img_cols = 28, 28 # 이후 데이터를 불러옵니다. from tensorflow import keras from tensorflow.keras.datasets import mnist (x_t..
-
7. CNN(Convolutional Neural Network)general ML, DL, NLP/딥러닝 2022. 4. 20. 22:50
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 드디어 CNN입니다. (개인적으로는 딥러닝을 CNN을 통해 입문했기에 옛 생각이(?) 많이 나는 알고리즘이기도 합니다 ㅎ_ㅎ...) 1. 이미지 처리에서의 FFNN 한계와 CNN 앞 FFNN에서 확인했듯이 사실 이미지를 단순 FNN으로 처리하기는 매우 힘듭니다. 가래떡 뽑듯이 하나로 뽑는 과정에서부터 공간 정보 손실과 과도한 파라미터 수의 증가가 일어나기 때문입니다. 가래떡이라고 했지만 실은^^;; 그림처럼 이미지를 여러 줄로 자른 후 1차원 배열로 나타내는 것을 뜻합니다. 딱 봐도 알 수 있듯이 이미지가 무엇을 나타내는 지에 대한 정보, 즉 이웃 픽셀들과의 공간 정보(spatial..
-
6. Overfitting 과적합general ML, DL, NLP/딥러닝 2022. 4. 20. 18:06
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 1. 과적합 1) 과적합이란 과적합은 학습 데이터는 잘 설명하는 반면, 새로운 데이터는 잘 설명하지 못하는 상태를 말합니다. 학습을 하는 이유는 새로운 데이터를 잘 설명하기 위해서입니다. 그런데 반대가 된다면 곤란합니다 ^^; 2) 과적합 원인 ① 모형이 너무 복잡해서 파라미터 수가 너무 많을 때 ② 모형이 학습 데이터에 너무 민감하게 반응하게 때문에 발생합니다. 보통 딥러닝 모형은 기본적으로 파라미터가 많기 때문에 과적합이 쉽게 발생하는 편입니다. 과적합 발생을 알아차릴 수 있는 방법에는 validation dataset이 있습니다. 즉 검증 데이터셋은 훈련 데이터의 일부이나, 훈..
-
5. FFNN(Feed Forward Neutral Network)general ML, DL, NLP/딥러닝 2022. 4. 20. 13:55
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. FFNN(Feed Forward Neural Network) FFNN이란 기본적인 신경망을 뜻합니다. 그동안 정리해왔던 신경망이 바로 FFNN입니다. FFNN은 FNN, ANN(Artificial Neural Network), MLP(Multilayer Perceptron), 혹은 Dense layer 등등으로 불리기도 합니다. 앞서 이야기했던 것처럼 은닉층이 2개 이상인 것부터 deep 자가 붙습니다. 데이터에 신경망을 적용하고자 할 경우 정해야 하는 순서는 다음과 같습니다. * 데이터에 신경망을 적용한다는 것은 곧 학습 데이터에 신경망 모형을 적용하여 학습을 시작한다는 것을 의미..
-
3. 경사하강법 & 4. optimizergeneral ML, DL, NLP/딥러닝 2022. 4. 19. 18:06
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 3. 경사하강법 - 비용함수 최소화 방법 1. 신경망에서의 학습 신경망에서 '학습'이란 모형의 총 오차를 나타내는 비용함수를 최소화하는 파라미터 값을 찾는 것입니다. 이에 따라 optimization problem이라고 볼 수도 있습니다. 비용함수를 최소화 하는 주요 방법에는 다음과 같은 방법들이 있습니다. - Normal Equation: 비용함수가 2차함수와 같이 볼록한 convex 함수일 때만 사용 가능합니다. 그러나 대부분 딥러닝의 비용함수는 convex 형태가 아니고, 파라미터도 많기에 딥러닝에서는 사용되지 않습니다. - Gradient Descent 경사하강법 가중치의 값..
-
2. 활성화 함수general ML, DL, NLP/딥러닝 2022. 4. 19. 17:57
*본 게시물은 22-1학기 연세대학교 일반대학원 딥러닝을이용한비정형데이터분석(이상엽 교수님) 수업 내용을 정리한 것입니다. 2. 활성화 함수 1) 활성화 함수란? 활성화함수란 노드에 입력된 값을 변환하여 출력하는 역할을 하는 함수로, 신경망에서는 주로 비선형 함수를 씁니다. 실제 신경망에서는 Z1, Z2와 같이 값을 그대로 내보내지 않습니다. 반드시 활성화 함수를 거쳐서 특정 형태로 변환 합니다. 2) 활성화 함수의 역할과 특징 (1) 활성화 함수는 은닉 노드에서 독립변수의 정보를 추출하는데 사용됩니다. - 활성화 함수에 비선형 함수를 쓰는 이유는 독립변수와 종속변수 간의 비선형 관계를 파악하기 위해서입니다. - 선형 함수는 아무리 중첩해도 선형함수가 되기에 여러 은닉층을 쌓는 효과를 전혀 누릴 수 없습..