Generative Model (생성형 모델) 중 하나인 ChatGPT가 AI의 잠재력을 전세계에 퍼뜨리고 있다. 개인적인 생각으로 만든 사람도 정확히 ChatGPT가 어떻게 학습이 가능한 지에 대한 설명을 할 수는 없다고 생각한다. Model의 layer, weight들이 학습되는 형태는 처음에 초기값을 어떻게 잡는 지, 어떤 activation function을 쓰는 지에 따라 다르며, chatGPT처럼 데이터가 많게 되면 더더욱 설명하기는 어렵다. 우리가 ChatGPT의 원리를 정확히 알 수는 없더라도 생성형 모델의 기본적인 유형 중 하나인 Autoencoder에 대해서 먼저 보도록 하자. Autoencoder는 encoder 부분과 decoder 부분으로 나뉜다. Encoder는 latent sp..
기본 가정 (Input Data:X, Output Data: Y) 인공지능 모델에서 갖고 있는 데이터(input data)를 X, 추출하는 데이터(Output data)를 Y라고 한다. 인공지능 모델에서 우리는 P(X) X가 일어날 확률보다는 P(Y|X) X가 발생했을 때 output인 Y가 발생할 확률을 구하는 것을 목표로 한다. Bayes Theorem (베이즈 정리) 확률 이론이 여기서 왜 나오나 싶겠지만, 인공지능의 기반이 확률이기에 확률 및 통계는 빠질 수 없다. 특히 조건부 확률 이 글이 다룰 내용에서 많은 비중을 차지하기에 먼저 다루기로 한다. Bayes Theorem을 간략히 정리하면 사전 확률 (prior probability)를 이용하여 사후 확률(posterior probability..
머신러닝, 인공지능 소식을 접하면 심심치 않게 회귀라는 말을 접한다. 회귀란 뭘까? 회귀:한 바퀴 돌아서 본디의 자리로 돌아옴. [출처: Oxford Languages] 데이터를 다루는 머신러닝 입장에서 보면, 흩어져 있는 데이터들이 자신의 자리로 돌아간다고 할 때, 이를 가장 잘 설명하는 선형의 그래프를 찾는 게 선형 회귀의 목표이다. 쉬운 말로 하면, 데이터의 흩어져 있는 모습과 유사한 형태의 선형 그래프를 찾으면 된다. 일변수 함수의 선형 회귀 분석 데이터 생성 본격적으로 회귀 분석을 하기 위해 데이터를 생성해 보자! 선형 회귀 분석을 하기 위해 데이터의 전체적인 경향을 나타내는 선형 함수를 하나 만들자. y = ax+b 의 형태로 중학교 수학을 배웠다면 누구나 아는 함수이다. 데이터가 이 선형 함..
이 글은 단계별로 쓰여진 글이며 첫번째 단계를 보기 위해서는 아래 게시글을 참고 바람! 2023.03.27 - [Computer Science/Python] - [AI OpenCV-Python] SIFT를 통한 이미지 특징 추출 (1) (Image Feature Extraction/Matching Using SIFT) [AI OpenCV-Python] SIFT를 통한 이미지 특징 추출 (1) (Image Feature Extraction/Matching Using SIFT) 이 글은 Google Colab 환경에서 실행 되었습니다. !cat /etc/*release 출력: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DES..
이 글은 Google Colab 환경에서 실행 되었습니다. !cat /etc/*release 출력: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS" NAME="Ubuntu" Google Colab의 환경은 Linux Ubuntu이니 참고한다. OpenCV? OpenCV는 컴퓨트 비전 라이브러리로 컴퓨터가 이미지를 인식하거나 다루는데 쓰이는 라이브러리이다. C++ 언어로 쓰였고, python wrapper인 OpenCV-python 을 이용하여 python으로도 조작이 가능하다. 이미지를 다루는 데에 array를 기본적으로 사용하여 data structure가 numpy..
tensorflow: 머신러닝을 효과적으로 하기 위한 파이썬 프레임워크이다. 앞선 글 중에, pytorch 프레임워크, scikit-learn 라이브러리를 다룬 내용이 있으니 먼저 보고 오자! 2023.03.20 - [Computer Science/Python] - [AI PYTORCH] Convolution Neural Network(CNN) MNIST 데이터 구분 (0-9 숫자 구분하기) [AI pytorch] Convolution Neural Network(CNN) MNIST 데이터 구분 (0-9 숫자 구분하기) scikit-learn을 해봤으니 한 단계 업그레이드 된 프레임워크 'pytorch'로 구현을 해보자. 좀 더 깊은 이해를 위해 scikit-learn을 참고하고 와도 좋다! 2023.03..
scikit-learn을 해봤으니 한 단계 업그레이드 된 프레임워크 'pytorch'로 구현을 해보자. 좀 더 깊은 이해를 위해 scikit-learn을 참고하고 와도 좋다! 2023.03.17 - [Computer Science/Python] - [AI scikit-learn] Machine Learning. 숫자(0-9) 손 글씨체 구분 (Classfying Handwritten digits) (MNIST) [AI scikit-learn] Machine Learning. 숫자(0-9) 손 글씨체 구분 (Classfying Handwritten digits) (MNIST) 이번 주제는 google colab에서 실행된다. google drive 가 있다면 google colab은 좋은 선택지이며, py..