본문 바로가기
반응형

딥러닝 머신러닝 차이13

딥러닝 순환 신경망 RNN 10분 만에 이해하기 인공 지능의 시대 우리는 인공지능 시대에 살고 있다. 인간의 감정을 이해하고, 인간의 삶을 위협하는 인공지능이 아니라, 비서로써 혹은 검색의 어시스턴트로 인공지능 기술이 도입되고 있다. 인공지능 서비스의 가장 대표적인 사례는 인공지능 비서다. 애플의 시리, 마이크로소프트의 코타나, 아마존의 알렉스 등등 스피커의 형태로 우리 옆에 다가와있다. 애플의 시리가 어떻게 사람의 말을 이해하고, 이에 맞는 문장을 만들어서 음성으로 출력하는지 궁금해본적 있는가? 이런 인공지능 비서들이 사람말을 이해한다는 것은 이미 인간이 사용하는 언어를 상당부분 습득하고, 학습을 진행했다는 뜻이다. 인간의 문장은 여러개의 단어로 구성이 되고, 전체적인 문장의 의미를 이해하기 위해서는 앞에서 입력된 단어가 저장이 되어 있다는 것이다... 2021. 12. 17.
딥러닝 CNN 컨볼루션 신경망 10분만에 이해하기 딥러닝이 사용되는 분야는 다양하다. 그 중에서도 많은 딥러닝 모델들이 도전하는 분야가 바로 이미지 인식 분야다. 이미지 인식을 하기 위해서는 프레임을 이해하고 분해하고 해석할 수 있어야 한다. 딥러닝 이미지 인식분야에서 강력한 성능을 보이는 알고리즘이 바로 컨볼루션 신경망(Convolution Neural Network)이다. 컨볼루션 신경망(CNN) 컨볼루션 신경망은 입력된 이미지에서 특징을 한번더 추출해낸다. 특징을 추출하기 위해서 마스크(혹은 필터, 윈도, 커널이라고도 부른다.) 를 도입한다. 임의의 2x2 마스크를 만들고, 마스크에 임의의 가중치를 설정한다. 이미지를 기존 이미지에 순회하면서 적용하면 컨볼루션이라고 불리는 새로운 합성곱층이 만들어진다. 이 컨볼루션을 가지고 기존 이미지에서 더욱 정.. 2021. 12. 16.
딥러닝 손글씨 예측 모델 만들어보기 (feat 데이터정규화) 딥러닝 손글씨 인식하기 딥러닝을 공부하면 가장 유명한 도전과제가 손글씨를 인식하는 것이다. 컴퓨터가 사람이 쓴 글을 읽고 의미를 데이터화 하기 위해서 필수적인 과정이다. 손글씨를 이해하기 위해서는 먼저 글씨를 1차 배열로 변경하는 작업이 필요하다. mnist에서 지원하는 손글씨 데이터는 6000개의 학습셋을 가지고 있다. 각 데이터는 28x28 픽셀크기를 가지고 있다. 1 2 3 4 5 from keras.datasets import mnist (X_train, Y_class_train),(X_test, Y_class_test)=mnist.load_data() print("학습셋 이미지 수 : {0} 개".format(X_train.shape)) print("테스트셋 이 수 : {0} 개".format(.. 2021. 12. 16.
딥러닝 데이터가 부족할 때 해결하는 방법 K겹 교차 검증이란? (feat 광석 돌 구분 예제 사용) 문제의 발단 딥러닝 모델을 학습시키기 위해서는 방대한 양의 데이터셋이 필요하다. 하지만 현실에서 데이터셋을 다량으로 구축하기는 쉽지 않은 일이다. 그럼에도 불구하고 예측정확도가 높은 모델을 만들어야 하는 프로그래머들이 연구한 결과 해결책을 찾았다. 바로 K겹 교차검증이다. K겹 교차검증이란(k-fold cross validation)? 데이터셋을 먼저 여러개로 나눈다. 예들들어 데이터셋을 5개로 구분한다고 하면 80%는 학습 데이터로 사용하고, 나머지 20%는 테스트셋으로 사용하는 것이다. 한번의 학습이 완료되면 다시 데이터셋을 5개로 구분하고 이번에도 다시 학습셋과 테스트셋을 구분한다. 구성만 다르게 해서, 다시 학습을 진행한다. 이 과정이 반복되면, 적은 데이터셋을 가지고도 많은 학습을 진행할 수 있.. 2021. 12. 16.
딥러닝 과적합 문제 해결하기(feat 광석 판별하기) 과적합(Overfitting)이란? 과적합은 특정 모델이 학습 데이터셋 안에서는 일정 수준 이상의 예측 정확도를 보이지만, 새로운 데이터를 적용 하면 정확도를 높이지 못하는 현상을 의미한다. 과적합이 발생하는 이유? 모델 내에 층이 너무 많이 쌓이게 되거나, 변수가 복잡하면 과적합이 발생한다. 또한 테스트셋과 학습셋이 중복되면, 과적합이 발생한다. 딥러닝 모델에서는 입력층, 은닉층, 출력층에 상당히 많은 노드들이 중첩되기 때문에 과적합 문제에 빠지기가 쉽다. 과적합 문제를 해결하는 방법 과적합에 빠지지 않고, 정확한 예측 모델을 만들기 위해서는 학습 데이터와 테스트 데이터를 완전히 분리하는 것이 방법이 된다. 예를 들어 100개의 데이터를 샘플로 가지고 있는 데이터셋이라면, 70개는 학습셋으로 사용하고,.. 2021. 12. 16.
딥러닝 다중 분류 모델 Multi Classfication 설계하기 (feat 아이리스 품종 분류하는 모델 설계하기) 다중 분류 문제 0과 1 결과값 중 하나를 선택하는 문제가 아닌, 3개 이상의 결과값을 예측하는 모델을 다중 분류(Mulit Classification)이라 한다. 원-핫 코딩(one-hot-coding) 결과값에 문자열이 포함되어 있다면 이를 0과1로 구성된 숫자로 변경해주는 작업이 필요하다. 사이킷 런 라이브러리의 LabelEncoder()함수를 사용해서 원핫코딩 작업을 진행한다. 예를 들어 결과값이 'a', 'b', 'c' 3개의 값이 있다고 가정하자. 결과값을 다음과 같이 변경하는 것이다. a => 1 => [1, 0, 0] b => 2 => [0, 1, 0] c => 3 => [0, 0, 1] 소프트맥스 활성화 함수(softmax) 입력층에서 받은 데이터는 1보다 큰 수로 이루어져 있다. 우리는.. 2021. 12. 16.
반응형