위 포스트는 정보문화사에서 출판한 책 '파이썬 딥러닝 파이토치'를 바탕으로 작성되었습니다. 우리는 전체 데이터가 아니라 샘플 데이터(표본)만 갖고 있다. 우리가 갖고 있는 샘플 데이터를 완벽하게 맞추는 모델을 만들었을 때, 우리가 보지 못한 데이터도 모두 잘 맞을거라 보장할 수 있을까? 우리가 갖고 있는 데이터를 더욱 완벽하게 맞추려고 노력할수록 우리가 보지 못한 데이터는 더 맞추지 못할 확률이 높다(과적합). 여기서 과적합이 발생하는 이유는 무엇일까? 1. 샘플 데이터 수의 부족 만약 전체 집단의 데이터를 갖고 있고 이 데이터에 잘 맞는 모델을 만들었다면 전혀 문제가 없다. 즉, 학습할 데이터의 수가 많을수록 모집단의 특성을 잘 반영할 확률이 높으며 우리가 갖고 있는 데이터가 모집단의 특성을 잘 반영할..
위 포스트는 정보문화사에서 출판한 책 의 내용을 바탕으로 작성되었습니다. 머신러닝이란? 머신러닝의 정의는 인공지능과 똑같지만, 사용하는 분야가 조금 다르다고 보면 된다. 최근의 머신러닝은 행과 열이 존재하는 행렬(정형 데이터)을 이용해 뭔가 예측 또는 분류하고 싶을 때 사용하고, 이미지 또는 텍스트와 같이 정형화돼 있지 않은(비정형 데이터) 데이터를 사용할 때는 인공지능(딥러닝)을 사용한다. (크게 보면 머신러닝은 인공지능 안에 포함되는 개념이라 볼 수 있다) 머신러닝의 종류 머신러닝 모델의 학습 목표는 '데이터(Input)에 대한 모델의 결과(Output)가 정답(Label)에 가깝게 나오도록 학습시키는 것'이다. 그렇다면 어떤 방법으로 모델을 학습시키는 것일까? 전반적인 머신러닝 모델 학습 방식은 다..
위 포스트는 정보문화사에서 출판한 책 의 내용을 바탕으로 작성되었습니다. 인공지능의 사례에는 어떤 것이 있을까? 1. 이미지 분류 인간이 이미지를 분류하는 성능은 약 95% 정도로 알려져 있다. 이런 인간의 능력을 따라잡기 위해 많은 연구자들은 어떻게 하면 인간 또는 그 이상으로 딥러닝이 이미지를 분류하는 성능을 낼 수 있을까 고민했다. 많은 연구 끝에 96%의 성능을 기록한 'ResNet'이라는 모델이 만들어졌다. 그 이후에도 딥러닝 모델은 계속 발전하여 단순히 이미지를 분류하는 것을 넘어 다양한 분야와 방식으로 발전하고 있다. 2. 객체 탐지(Object Dectection) 객체 탐지는 어떤 이미지 및 비디오 속에 포함되어 있는 물체에 대해 해당 물체가 어떤 물체인지를 분류하는 문제와 물체의 위치를..
위 포스트는 정보문화사에서 출판한 책 의 내용을 바탕으로 작성되었습니다. Autograd Autograd는 신경망 학습을 지원하는 PyTorch의 자동 미분 엔진이다. 파이토치를 활용 시 Back Propagation을 이용하여 파라미터를 업데이트하는 과정은 Autograd 방식으로 쉽게 구현할 수 있다. 이를 간단한 딥러닝 모델을 설계해보면서 구체적으로 설명해 보겠다. 우선, 전체 코드는 아래와 같다. 위의 전체 코드를 3개의 과정으로 분할하여 차근차근 살펴보자. (1) cuda.is_available() 메서드 : 현재 파이썬이 실행되고 있는 환경에서 GPU를 계산할 수 있는지를 파악한다. (2) BATCH_SIZE : 딥러닝 모델에서 파라미터를 업데이트할 때 계산되는 데이터의 개수이다. Input으..