'Machine Learning/Model' 카테고리의 글 목록 — 뚝딱이

Machine Learning/Model

Machine Learning/Model

[FNN] numpy를 사용하여 FNN 구현하기

numpy를 활용하여 FNN을 구현해 보자! config class AttrDict(dict): def __init__(self, *args, **kwargs): super(AttrDict, self).__init__(*args, **kwargs) self.__dict__ = self config = AttrDict() config.lr= 0.001 config.bias = 0.7 config.epochs = 500 Data 클래스 0 데이터에 *10을 하여 차별점을 둠 def generate_binary_dataset(num_samples, num_features, random_state=50): np.random.seed(random_state) # 클래스 0 샘플 생성 num_samples_clas..

Machine Learning/Model

[ML] KNN(K-Nearest Neighborhood), k-최근접 이웃

KNN(K-Nearest Neighborhood) 직관적인 머신러닝 분류(Classification) 알고리즘으로 새로 들어온 관측치 주변의 k개의 sample을 이용하여 관측치를 분류한다. 아래의 녹색점이 새로 들어온 관측치이다. k = 1일 때, 녹색점은 가장 가까운 k개의 데이터 중 파란색이 많기 때문에 Class A로 분류된다. k = 7일 때, 녹색점은 가장 가까운 k개의 데이터 중 빨간색이 많기 때문에 Class B로 분류된다. K 정하기 k는 KNN에서 중요한 파라미터로 너무 작으면 과적합이 발생하고 너무 크면 과소적합이 발생한다. 큰 K 미세한 경계 부분을 잘 분류하지 못함 과소적합이 발생함(모델이 간단해짐) 작은 K 이상치의 영향을 크게 받음 패턴이 직관적이지 않을 수 있음 과적합이 발생..

Machine Learning/Model

[ML] 나이브 베이즈(Naive bayes) 개념, 실습

베이즈 정리 조건부 확률을 계산하는 방법 중 하나 새로운 정보를 토대로 어떠한 사건이 발생했다는 주장의 신뢰도를 갱신하는 방법 수식 \( P(B|A) \)를 쉽게 구할 수 있을 때 아래의 식을 통해 \( P(A|B) \)를 구할 수 있음 $$ P(A|B) = \frac{P(B|A)P(A)}{P(B)} $$ Day Outlook Humidity Play Tennis 1 Sunny High No 2 Sunny High No 3 Overcast High Yes 4 Rain High Yes 5 Rain Normal Yes 6 Rain Normal Yes 7 Overcast Normal No 8 Sunny High Yes 9 Sunny Normal No 10 Rain Normal Yes 11 Sunny Norma..

Machine Learning/Model

[ML] 이진 분류 모델

이진 분류 모델 동전 던지기를 할 때 앞면과 뒷면이 나올 확률을 예측하는 문제와 같음 앞면, 뒷면이 나올 확률은 베르누이 분포(Bernoulli Distribution)로 정의 되기에, 이진 분류 모델은 베르누이 분포를 예측하는 모델로 정의할 수 있다. 베르누이 분포 Bernoulli Distribution 두 종류의 사건이 발생할 확률 $$ p(x; \mu ) = \mu^{x}(1-\mu)^{1-x}, x \in \{0,1\} $$ x는 확률 변수로 x = 1 이면 사건 1을 나태내고, x = 0 이면 사건 2를 나타낸다. \( \mu \)는 사건 1이 발생할 확률, \( 1-\mu \)는 사건 2가 발생할 확률이다. $$ p(x = 1; \mu ) = \mu = \frac{1}{2} $$ $$ p(x..

Machine Learning/Model

[ML] 순방향 신경망(FNN), 신경망의 설계

다층 퍼셉트론 = 순방향 신경망 (Feedforward Neural Network) 퍼셉트론 = 인공 뉴런 (Artificial neuron) CNN (Convolution neural network)는 공간 데이터(image), RNN(Recurrent Neural Network)는 순차 데이터(시계열 데이터)에 주로 사용됨 순방향 신경망의 구조 입력 계층 외부에서 데이터를 받아 전달하는 계층 은닉 계층 데이터의 특징을 추출하는 계층 출력 계층 추출된 특징을 기반으로 결과를 외부에 출력하는 계층 대부분의 모델에는 입력 계층과 출력 계층이 하나씩 있고 은닉계층만 가변적으로 구성된다. 모든 계층이 Fully connected layer로 구성됨 특징 추출 각 뉴런은 이전 계층에서 같은 입력을 받고 서로 다..

Machine Learning/Model

[DATA] Custom Image Data 넣기

파일 구조 data └resourve └happy └emoji00000.png └emoji00001.png └emoji00002.png └ ... 구조 확인하기 import glob glob.glob('data/resource/happy/*')[:20] config.augmentation = transforms.Compose([ transforms.Resize((config.img_shape[1], config.img_shape[2])), #resize transforms.ToTensor(), transforms.Normalize(mean=[0.5], std=[0.5]) #normalization ]) elif config.dataset == 'emoji': train_dataset = datasets...

Machine Learning/Model

[CNN] CNN Stride (Convolution Neural Network)

Stride filer의 이동 간격 (보폭)을 조절하는 것 Stride = 2 input : \( n \times n\) filter : \( f \times f \) padding : \( p \) stride : \(s\) output : \(\left \lfloor \frac{n+2p-f}{s}+1\right \rfloor\times \left \lfloor\frac{n+2p-f}{s}+1\right \rfloor \) -> 소수로 나올시 내림 filter가 딱맞지 않게 떨어지면 계산을 안하기 위해서 -> 보통은 딱 떨어지게 설정함 https://www.youtube.com/c/Deeplearningai DeepLearningAI Welcome to the official DeepLearning.A..

Machine Learning/Model

[CNN] CNN 패딩 Padding (Convolution Neural Network)

Padding convolution 연산 전에 input data 주변에 특정 값을 채우는 것 Padding 하는 이유 kernel을 이용하여 특징을 추출할 때 마다 이미지가 축소됨 가장자리 픽셀은 output에 한번만 영향을 미침 (정보를 버리는 것) 위의 문제를 해결하기 위해 사용하는 것이 Padding 기존의 크기를 위지하는 이미지를 얻게 됨 위의 사진의 p = 1 (1 pixel로 padding) 새로 생긴 pixel에는 default로 0이 들어간다 Valid and Same convolution valid Convolution No Padding \( (n\times n) * (f \times f) \to (n-f+1) \times (n-f+1) \) Same Convolution input ..

파송송
'Machine Learning/Model' 카테고리의 글 목록