인공지능
-
#8. 합성곱 신경망(Convolutional neural network, CNN)인공지능/케라스 창시자에게 배우는 딥러닝 2021. 2. 22. 00:14
합성곱 신경망(Convolutional Neural Network)은 인공지능의 눈을 담당하는 신경망이라 할 수 있다. 정확히는 컴퓨터 비전을 위한 신경망이 합성곱 신경망이며, 흔히 이야기하는 CNN이다. 이번 포스팅에서는 MNIST 데이터에 Conv2D를 활용하여 CNN에 대한 기본적인 흐름을 파악한다. 먼저 기본 코드를 살펴보자. model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) # 이미지 포맷 model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation='relu'..
-
#7. 과대적합과 과소적합인공지능/케라스 창시자에게 배우는 딥러닝 2021. 2. 14. 21:47
머신러닝은 결국 최적화(Optimization)와 일반화(Generalization) 사이의 균형을 맞추는 작업이다. 데이터가 무한할 경우 학습을 반복하는 것이 모델에 도움이 될 수 있지만 한정된 데이터 안에서 학습을 계속하는 것은 해당 학습 데이터에만 맞춰진 모델을 구축하는 결과를 낳는다. 이를 방지하기 위해 우리는 데이터를 더 모으거나, 모델이 수용할 수 있는 양을 조정하거나 저장할 수 있는 정보에 제약을 줌으로써 더 나은 일반화가 가능하다. 네트워크 크기 축소 과대적합을 막는 가장 단순한 방법은 네트워크 크기 축소다. 모델에 있는 학습 파라미터를 줄이게 되면 데이터는 압축된 표현을 학습하게 되고 이는 일반화의 성능을 올려준다. 쉽게 생각해 데이터를 뭉뚱그려 표현함으로써 좀 더 많은 데이터가 이에 적..
-
#6. 데이터 전처리인공지능/케라스 창시자에게 배우는 딥러닝 2021. 2. 14. 21:02
위의 사진은 데이터 사이언티스트가 데이터를 수집하여 모델을 도출해내기까지 어떤 단계에서 얼만큼의 시간이 사용되는지를 보여준다. 이를 보면 절반 이상의 시간이 데이터를 전처리하는데 사용된다. 그만큼 데이터의 전처리는 모델의 성능에 가장 직결되는 문제이고 그만큼 중요하다. 전처리의 목적은 주어진 데이터를 신경망에 적용하기 용이하도록 변환하는 것이다. 신경망의 입력과 타깃은 컴퓨터의 실수 표현 방식인 부동 소수 데이터로 이루어진 데이터여야 한다. 이를 위해 이미지, 텍스트 등의 모든 데이터 형태는 텐서로 변환이 필요하다. 이 단계를 데이터 벡터화(Data Vectorization)라고 한다. 위의 사진처럼 원-핫 인코딩(One-hot Encoding) 역시 데이터 벡터화의 일종이라 할 수 있다. 입력 데이터가..
-
#5. 일반화된 모델을 위한 데이터 분할인공지능/케라스 창시자에게 배우는 딥러닝 2021. 2. 14. 20:54
머신러닝의 목표는 처음 본 데이터에서 잘 작동하는 일반화된 모델을 얻는 것이다. 데이터의 학습이 부족하면 과소적합(Under-Fitting)이 일어나고 데이터의 학습이 필요 이상이 될 경우 과대적합(Over-Fitting)이 발생한다. 이를 방지하기 위해 우리는 데이터를 훈련 데이터(Training Data), 검증 데이터(Validation Data), 테스트 데이터(Test Data)로 나눠 학습하게 된다. 데이터가 적을 경우 훈련 데이터와 테스트 데이터만을 사용하여 테스트 데이터로 모델을 검증하기도 하나, 일반적으로 이러한 방식은 테스트 데이터에 모델을 과대적합 시킬 위험이 있으므로 사용하지 않는다. 검증 데이터의 형태가 모델로 흘러들어가는 이러한 경우를 우리는 정보 누설(Information Le..
-
#4. 머신러닝의 분류인공지능/케라스 창시자에게 배우는 딥러닝 2021. 2. 14. 19:29
일반적으로 머신러닝 알고리즘은 4가지의 큰 범주 안에 속한다. 지도학습(Supervisied Learning), 비지도학습(Unsupervisied Learning), 자기지도학습(Self-supervisied Learning), 강화학습(Reinforcement Learning)이다. 각각의 범주는 명확하게 구분되어 있지는 않다. A 문제는 지도학습으로, B 문제는 비지도학습으로 푼다는 개념보다는 이러한 연속적인 범주에 다양한 알고리즘이 속한다는 정도로 인지하면 좋을 것이다. 지도학습(Supervisied Learning)은 사람 혹은 미리 레이블링된 샘플 데이터가 주어지면 입력 데이터를 이러한 레이블에 매핑하는 방법을 학습한다. 일반적으로 분류(Classification)와 회귀(Regression)..
-
#3. 신경망의 구성요소인공지능/케라스 창시자에게 배우는 딥러닝 2021. 2. 7. 18:04
신경망 훈련은 크게 4가지의 요소로 구분된다. 네트워크를 구성하는 층, 학습에 활용될 입력 데이터, 학습의 정확성을 판단하는 손실 함수, 학습 진행 방식을 결정하는 옵티마이저가 모두 서로 연관되어 딥러닝 신경망의 구조를 이룬다. 층(Layer)는 하나 이상의 텐서를 입력 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈이다. 층은 입력 텐서의 크기와 모양에 따라 적절한 방식을 갖고 데이터를 처리한다. (samples, features)를 가지는 가장 기본적인 2D 텐서가 저장된 벡터 데이터는 보통 완전 연결 층(fully connected layer), 밀집 연결 층(densely connected layer)에 의해 처리가 된다. (samples, timestamps, features)와 같이 흔히 ..
-
R로 배우는 데이터 분석 #1인공지능/R로 배우는 데이터 분석 2021. 1. 24. 20:04
데이터의 구조 Vector : 1D의 구조를 지닌 열거형 데이터 # Vector 선언 name = c("모니터", "키보드", "마우스") # "모니터" "키보드" "마우스" sequence = seq(-3, 3, by = 0.5) # -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 print(name[2:3]) # "키보드" "마우스" print(name[-1]) # "키보드" "마우스" Matrix : 2D의 구조를 지닌 열거형 데이터 # Matrix 선언 mat = matrix(c(1, 2, 3, 4)), nrow = 2) """ 12 34 """ DataFrame : 2D의 구조에서 행과 열의 속성이 포함된 열거형 데이터 """ compute..