머신러닝 7

정규화란? Normalization, Regularization 정규화 종류에 대해서 알아보자.

정규화라는 단어가 가지는 의미는 정상화라는 말과 같다. [어떠한 오류나 비정상적인, 패턴이 없는] 상태에서 [정상적인 상태, 일정한 규칙을 가진]상태로 상태를 변화시키는 것이 정규화이다. 정규화가 실제로 수행되는 경우에는 굉장히 다양한 종류들이 있다. 흔하게 볼 수 있는 정규화로는 데이터베이스에서의 정규화, 통계학적 정규화, 머신러닝/딥러닝 학습에서의 정규화 3가지가 있다. 영어로 보자면 Normalization, Regularization가 될 수 있는데, 모두 한국어로하면 정규화라고 한다. 그래서 어떤 누가와서 정규화가 뭐에요?라고 묻는다면, 어떤 정규화를...말하는거지? 하고 헷갈릴 수 있다. 어느 면접에서 실제로 어떤 정규화를 말하는건지 질문자의 의도를 파악하지 못하고, 쌩뚱맞은 정규화에 대해서 ..

AI/Fundamental 2023.09.13

[메타코드] 머신러닝 기초를 위한 무료강의 (3) : 편차와 분산 (오차/에러), 오버피팅(Overfitting), 언더피팅(Underfitting)

https://youtu.be/oyzIT1g1Z3U * 간단한 모델은 파라미터 수가 낮고, 복잡한 모델은 파라미터 수가 많다. * 예측값에 대한 MSE는 예측값에 대한 분산(Variance)과 편차(Bias)의 합이다. - 편향과 분산은 모델을 평가할 때 아주 중요한 요소이다. # 편차/편향(Bias) : [실제값]과 [예측값(들의 평균값)]의 차이 # 분산(Variance) : 예측값들간의 차이 ([예측값1]과 또 다른 [예측값2,,,,n]의 차이들) # Trade-off : 분산과 편향이 모두 낮은 지점 - 이 순간의 파라미터값을 찾는 것이 머신러닝의 목표 * 오버피팅 (Overfitting) - 데이터수는 부족하고 모델은 복잡할 때에 발생할 수 있는 과적합 현상 - 여러 예측값들 사이의 차이 = 분..

AI/lectures 2022.09.18

[메타코드] 머신러닝 기초를 위한 무료강의 (2) : 머신러닝 기초수학개념, Optimmization 최적화

https://youtu.be/oyzIT1g1Z3U * 편미분 : 원하는 변수에 대해서만 미분하는 것 (원하는 변수 이외에는 상수 취급) * 연쇄 법칙 (chain rule) : 상쇄되는 현상을 이용해 새로운 u를 대입하여 미분값을 구하는 방법 * 손실함수(Loss Function) - 머신러닝 모델을 평가하기 위함 - ex. MSE (Mean Square Error) : 회귀모델의 대표 손실함수 # 최소 제곱법 (Least Square Method) - MSE 방법을 활용하여 풀이할 수 있음 - 최적의 파라미터를 구하기 위한 방법 중 하나 - 데이터에 대한 오차를 최소화하도록 함 - 단순한 선형회귀의 경우, (오차가 존재하지만) 최적의 해를 구할 수 있지만, 복잡한 모델의 경우, 최소 제곱법으로 해결하..

AI/lectures 2022.09.18

[메타코드] 머신러닝 기초를 위한 무료강의 (1) : 머신러닝 필수기본개념, 지도학습(Supervised Learning)

https://youtu.be/oyzIT1g1Z3U * 인공지능(AI) > 머신러닝(ML) > 딥러닝(DL) * 머신러닝 - 통계적 기법 활용하여 모델이 가볍다 - 딥러닝이 머신러닝에 속하는 개념이기 때문에 딥러닝을 하기 위해서는 머신러닝도 기초적으로 알아야 한다. * 머신러닝의 종류 - 비지도 학습 : 차원축소(PCA, SVD, LDA, t-SNE, UMAP 등), 군집화(K-Means, Mean Shift, Gaussian Mixture Model, DBSCAN) - 지도 학습 : 회귀, 분류, 앙상블 방법이 있음 - 강화 학습 # 지도학습 - 회귀(Regression) - 연속형 데이터 - 단순 선형 회귀, 다중 선형 회귀, 다항 회귀 - 최적화 방법(loss function) : MSE(Mean ..

AI/lectures 2022.09.14

[머신러닝] 학습, 검증, 테스트 데이터 쪼개는 법 : random_split PyTorch), train_test_split(Scikit-learn)

1. Pytorch * MNIST데이터를 예시로 불러와 train 데이터셋을 train과 validation 데이터셋으로 나누어 보는 작업 - 데이터셋을 쪼갤 때, torch.utils.data.random_split 모듈을 활용하면 된다. - random_split(pytorch에서 불러온 데이터셋 변수, [len(train_dataset), len(validation_dataset)]) 로 간단하게 분리가 가능하고, 데이터를 쪼개면서 데이터를 뒤섞고 싶을 때, generator 옵션을 사용하면 된다. (python 내장 함수인 help를 활용하여 random_split에 파라미터들을 미리 확인할 수 있다.) # 예시 코드 train_dataset = MNIST(os.getcwd(), download=..

AI/Fundamental 2022.08.26

Linux에 ML환경 구축하기 (2) - anaconda, pytorch, tensorflow2, pip3, jupyter lab / notebook 설치 방법 모음

https://kyull-it.tistory.com/19 Linux에 ML환경 구축하기 (1) - CUDA, cuDNN 여러 버전 한 컴퓨터에 설치하기 + 드라이브 설정 ※ Ubuntu LTS 20.04 버전 설치 필수 (22.04버전에서는 Pytorch, Tensorflow지원 CUDA 호환X) - 2022.08.16 기준 1. GPU 스펙 확인 - CUDA설치가 가능한 시스템을 갖추고있는지 확인하는 과정 - 필자는 컴퓨터 전체 스 kyull-it.tistory.com # 1 : Anaconda 설치방법 - Linux anaconda installation Manual https://docs.anaconda.com/anaconda/install/linux/#installation Installing o..

Linux에 ML환경 구축하기 (1) - Multi CUDA, cuDNN 여러 버전 한 컴퓨터에 설치하기 + 드라이브 설정 (local)

※ Ubuntu LTS 20.04 버전 설치 필수 (22.04버전에서는 Pytorch, Tensorflow지원 CUDA 호환X) - 2022.08.16 기준 1. GPU 스펙 확인 - CUDA설치가 가능한 시스템을 갖추고있는지 확인하는 과정 - 필자는 컴퓨터 전체 스펙을 확인할 수 있는 [CPU-Z]라는 프로그램을 활용하여 확인함 - Graphics > Display Device Selection > NVIDIA GeForce RTX 3060 - the list of CUDA-enabled GPU cards에 내 GPU가 있는지 확인 2. 설치해야하는 CUDA 버전 확인 - PyTorch의 Compute Platform에서 11.6버전이 필요함을 확인 - Tensorflow의 Software Requir..