목록전체 글 (94)
Stats & AI tech blog - '일단 시도함'
다층 퍼셉트론(MLP), 심층신경망(DNN)에 이어 이번 포스팅에서는 컨볼루션 신경망(CNN)에 대해 알아보고자 한다. 1. 컨볼루션 신경망 (Convolution Neural Network) 이란? CNN은 영상 자료로부터 패턴인식을 하는데 이용되는 end-to-end 방식의 딥러닝 기법이다. end-to-end 방식이란 feature 추출부터 분류까지 전체적인 과정을 하나의 모델로 수행 가능한 알고리즘을 뜻하는데,CNN 이전에 사용하던 영상 분류 알고리즘에는 사람이 직접 feature를 선택하는 hand-crafted feature 추출 과정이 포함되어 있었다. 이러한 방법은 얼마나 좋은 feature를 선택하냐에 따라 성능이 크게 좌우된다는 단점이 존재했고, hand-crafted feature..
2024.04.05 - [Programming/Python] - [Python] PyTorch에서 신경망 모델 정의 [Python] PyTorch에서 신경망 모델 정의PyTorch에서 신경망 모델 정의 오늘은 파이토치(PyTorch)에서 모델을 정의하는 방법에 대해 알아볼거에요. 모델 정의에 필요한 개념인 계층(Layer), 모듈(Module), 모델(Model)에 대해 먼저 알아볼게요. 계meowstudylog.tistory.com 이전 포스팅에서 파이토치(PyTorch)를 활용해서 신경망 모델을 정의하는 방법에 대해 알아보았다.이번 포스팅에서는 신경망 모델 파라미터인 손실함수(Loss function), 옵티마이저(Optimizer), 학습률 스케줄러(Learning rate scheduler), 지..
이번 포스팅에서는 파이토치(PyTorch)에서 신경망 모델을 정의하는 방법에 대해 알아보려고 한다.모델을 정의할 때는 계층(Layer), 모듈(Module), 모델(Model) 3가지 개념을 먼저 알아야 한다. 계층 (Layer)합성곱층이나 선형계층 등이 있고 계층이 모여 모듈이나 모델을 구성한다.모듈 (Module)하나 이상의 계층이 모여 모듈이 되거나, 모듈이 모여 새로운 모듈을 만들 수도 있다.모델 (Model)최종적으로 원하는 신경망 구조로 한 개의 모듈이 모델이 될 수도 있다. 계층과 모듈을 사용해서 신경망 모델을 정의하는 방법에도 여러 가지가 있는데 하나씩 알아보겠다. 1. 단순 신경망 정의 모듈을 상속받지 않는 아주 간단한 모델을 만들 때 사용하는 방법으로 구현이 쉽고 단순하다는 장점이 있다..
1. 파이토치 개요 파이토치(PyTorch)는 2017년 초에 공개된 딥러닝 프레임워크이다.초기에는 파이썬 넘파이(Numpy) 같은 과학 연산용 라이브러리로 공개되었지만, 점점 딥러닝 프레임워크로 발전하게 된 케이스다. 파이토치(PyTorch)는 간결하고 쉬운 구현성과 GPU를 사용한 빠른 연산 처리로 유명해졌고, 아래와 같은 주요 특징을 가지고 있다. GPU(Graphics Processing Unit) 딥러닝에서 기울기를 계산할 때 CPU 대신 GPU를 사용하면 훨씬 빠른 속도로 미분 연산을 처리할 수 있다. CUDA, cuDNN이라는 API를 통해서 GPU에서 사용하는 병렬 처리 알고리즘을 연산에 사용한다.텐서(Tensor)텐서(Tensor)는 파이토치의 데이터 형태로 매우 중요한 핵심 개념이다. ..
2024.04.02 - [Data Science/Deep Learning] - [ML/DL] DNN, Deep Neural Network (심층신경망) (2) - 차원의 저주 (Curse of dimensionality) [ML/DL] DNN, Deep Neural Network (심층신경망) (2) - 차원의 저주 (Curse of dimensionality)DNN, Deep Neural Network (심층신경망) (2) - 차원의 저주 (Curse of dimensionality) 2024.04.02 - [Deep Learning] - [DL] DNN, Deep Neural Network (심층신경망) (1) - 기울기 소실 (Vanishing gradient) [DL] DNN, Deep Neu..
2024.04.02 - [Deep Learning] - [DL] DNN, Deep Neural Network (심층신경망) (1) - 기울기 소실 (Vanishing gradient) [DL] DNN, Deep Neural Network (심층신경망) (1) - 기울기 소실 (Vanishing gradient)DNN, Deep Neural Network (심층신경망) (1) - 기울기 소실 (Vanishing gradient) 1. DNN 이전 포스팅에서 다층 퍼셉트론(MLP) 구조에 대해 알아봤어요. MLP 구조는 크게 입력층(input layer), 은닉층(hidden layer), 출력층(meowstudylog.tistory.com 이전 포스팅에서는 DNN의 초기 문제점 중 하나인 기울기 소실 (V..
2024.04.01 - [Deep Learning] - [DL] MLP, Multi-Layer Perceptron (다층 퍼셉트론) [DL] MLP, Multi-Layer Perceptron (다층 퍼셉트론)MLP, Multi-Layer Perceptron (다층 퍼셉트론) 1. Perceptron Perceptron 이론은 신경세포(neuron)을 본 따서 만들어진 인공신경망의 기본적인 구조단위에요. 뉴런의 수상돌기처럼 퍼셉트론의 입력노드(input node)meowstudylog.tistory.com 이전 포스팅에서 다층 퍼셉트론(MLP) 구조에 대해 알아보았다. 이번 포스팅에서는 심층신경망(DNN)에 대한 개념과 DNN의 문제점 중 하나인 기울기 소실(Vanishing gradient) 문제와 해결..
1. PerceptronPerceptron 이론은 신경세포(neuron)을 본 따서 만들어진 인공신경망의 기본적인 구조단위이다. 뉴런의 수상돌기처럼 퍼셉트론의 입력노드(input node)가 외부 정보를 받아들이고,시냅스가 신호를 증폭하듯이 가중치(weight)를 곱해서 받아들이는 최종 정보의 양을 결정한다.이 과정에서 편향(bias)를 주기 위해 일정 상수 값을 더할 수도 있다. 그 후, 신경세포 활성화를 결정하는 역치처럼 활성화 함수(activation function)을 통해서 다음 퍼셉트론으로 전달할 정보를 결정하게 된다. Perceptron이론은 간단한 선형 분류는 가능하지만 복잡한 분류 문제는 해결하지 못한다는 아주 큰 한계점을 가진다.수학적으로 AND, OR같은 논리는 구현가능하지만, X..
1. 손실함수 (Loss function)머신러닝에서 모델을 학습한다는 말은 예측값과 실제값의 오차를 최소화하는 모델 파라미터를 찾는 것이라고 할 수 있다. 여기서 말하는 오차(Error)를 손실(Loss) 또는 비용(Cost)이라고도 하고,오차를 정의한 함수를 손실함수(Loss function) 또는 비용함수(Cost function)이라고 한다. 대표적인 손실함수로는 MSE, RMSE 등이 있는데 일반적인 선형 회귀의 성능 지표로 잘 알려져있다.이진크로스엔트로피(binary cross entropy)도 분류 문제에서 일반적으로 사용되는 손실함수이고, 그 밖에도 오차를 정의하는 여러 함수들이 존재한다. MSE, Mean Square Error$$\frac{1}{n}\sum^{n}_{i=1}(y_i=\h..
이번 포스팅에서는 회귀모형 성능 평가 지표로 사용되는 손실함수(loss function)인 MAE, RMSE, MSE에 대해 알보겠다. 각각의 특징과 차이점에 대해 알아보고자 한다.1. MAE (Mean Absoluted Error) 예측값과 실제값의 차이의 절대값의 평균이다. $$MAE = \frac{1}{n}\sum^{n}_{i=1}|y_i=\hat{y_i}|$$ MSE, RMSE에 비해 이상치의 영향을 크게 받지 않는다. (모든 오차에 동일한 가중치를 부여)오차가 0인 지점에서 뾰족한 형태(첨점)를 띄며 미분 불가능하다. 2. MSE (Mean Squared Error)예측값과 실제값의 차이의 제곱의 평균이다. $$MSE = \frac{1}{n}\sum^{n}_{i=1}(y_i-\hat{y_i})^..