CS/ML+DL 6

[Principles][3]Backpropagation

딥러닝의 핵심이론인 backpropagation(역전파) 알고리즘에 대한 설명입니다. 지금까지 gradient descent라는 개념을 보며 loss함수를 미분하여 그것이 minimum일 때를 찾는 과정이 learning시 accuracy를 높일 수 있는 방법이며, local minimum 등에 갇히게 되는 것이 model의 learning 성능을 저하시키는 요인이라고 배워왔습니다. 그렇다면 각 parameter를 loss가 최소화되게끔 맞춰가는 과정이 필요할텐데, neural network(NN)의 각각의 요소 (weight, bias)에 대해 어떻게 미분을 구할지를 알아보겠습니다. 아래 필기와 같은 네트워크가 있다고 가정합니다. 그렇다면 첫 layer의 weight 2*3=6개, bias 3개, 두 ..

CS/ML+DL 2023.02.07

[Principles][2]Mathematical Notation for Artificial Neural Networks

딥러닝의 기초 중 하나인 네트워크를 행렬로 표기하는 방법과, activation 함수의 종류가 어떻게 결과에 영향을 미치는지를 알아보도록 하겠습니다. 노드와 엣지로 neural network(NN)를 표현하면 다음과 같은 그림이 나오는 것을 볼 수 있습니다. 복잡하게 보일수도 있는데 복잡성때문에 이를 간단하게 행렬로 나타낼 수 있어야합니다. NN을 수식으로 나타내면 매우 길어집니다. 대신, 행렬곱을 이용해 다음과 같이 나타낼 수 있습니다. 함수 f 로 감싸는 이유는 weight를 통과하고 activation 함수에 들어가기 때문입니다. 이를 통해 multi layer perceptron(MLP)는 행렬곱, 벡터합, activation함수 통과의 반복임을 알 수 있습니다. 이전에 activation 통과한..

CS/ML+DL 2023.02.06

[Principles][1]Artificial Neural Network

앞으로 진행될 센서 및 In-sensor / Near-sensor computing 연구를 위해 시리즈로 핵심 개념들을 정리해놓으려 합니다. Time series data classification을 위한 기법을 정립하는데 목적을 두고 기초적인 부분부터 연구에 관련된 내용까지 정리를 진행해보겠습니다. ANN, MLP 인간의 신경은 다음과 같이 생겼습니다. 이를 모사해보면 아래와 같이 동그라미와 선으로 표현이 가능할텐데, 동그라미를 노드, 선을 엣지라고 합니다. 여기서 신경을 통해 정보를 전달할 때 weight 와 bias를 이용합니다. weight는 중요도에 해당, bias는 민감도에 해당합니다. 들어온 자극의 종류에 따라 얼마나 민감하게 반응할지를 bias가 정한다고 하면, weight는 자극의 원천의..

CS/ML+DL 2023.02.05

CUDA + cuDNN + Anaconda Setup

*2022.06.11 기준 윈도우 환경에서 ML을 돌려야 할 필요가 생길 수 있습니다. 디스크드라이브에서 SSD로 마이그레이션 중 몇 가지 오류가 생겨 윈도우 클린설치를 하는 바람에 GPU computing 환경 또한 설정해주어야 할 필요가 생겼습니다. 지금 연구그룹에서 사용하는 제 개인 컴퓨터의 사양은 다음과 같습니다. HP Pavilion Gaming Desktop TG01 NVIDIA Geforce RTX 3060Ti 16G RAM Samsung Evo SSD 1000GB CUDA 설치 CUDA 와 CuDNN 최신버전을 사용할 경우 Tensorflow 에서 지원해주지 않을 가능성이 있기 때문에, 저의 경우에는 기존에 사용하던 CUDA 11.5를 설치해주었습니다. https://developer.nv..

CS/ML+DL 2022.06.11

PyTorch Basics(1)

Referred to : Prof. Sung Kim's PyTorch Lecture Linear Model y_hat 은 forward function 에 정의되어 있으며 예측값을 나타냅니다. loss는 예측값에서 실제 값을 빼고 제곱한 값을 나타냅니다. 데이터 셋에서 나온 loss 값의 평균을 취해주면 Mean Squared Error (MSE)를 얻을 수 있습니다. import torch import numpy as np import matplotlib.pyplot as plt w = 1.0 def forward(x): return x * w def loss(x, y): y_pred = forward(x) return (y_pred - y) * (y_pred - y) x_data = {1, 2, 3}..

CS/ML+DL 2021.08.24