전체 글 159

[DL] Convolutional Neural Networks (CNN)

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 이번 시간부터는 이제 neural network의 다양한 활용에 대해 알아본다그 첫번째는 바로 Convolution Neural Network일명 CNN이다 이 CNN은 이미지에 아주 널리 쓰이는 테크닉인데우리가 이미지를 neural network의 input으로 받는다그렇게 되면 image가 neural network의 input으로 들어오면서숫자 혹은 pixel value로 들어가게 된다 색상값이 RGB이기 때문에 내가 어떤 색상 이미지를 받으면채널별로 RGB컬러가 있고 채널별로 pixel value가 존재한다이런 값이 input으로 들어가게 되서 아웃..

[DL] Regularization (Dropout, Early Stopping, Transfer Learning, Data Augmentation)

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 오늘은 딥러닝에서 사용할 수 있는 regularization에 대해서 배웠다 참고로 우리가 이전에 linear regression에서 ridge와 lasso를 배웠는데그때도 이 방법론들이 linear regression에만 국한된 것은 아니라고 했었다 일단 우리가 이 regularization을 왜 하는지부터 좀 생각을 해보자 우리가 이전시간부터 계속 말했는데왜 training data에서 학습을 열심히 시켰는데 test data에서 성능이 안나올까?라고 한다면첫 번째는 train data에 너무 overfit한 나머지 test에서 일반화가 안되는 경우가 있다 ..

[DL] Computing Gradients (Forward Pass, Back Propagation)

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 지난 시간에는 우리가 gradient descent, Adam 이런걸 봤고gradient를 정확하게 어떻게 구현하는지에 대해서는 얘기를 안했다 지난 시간에 얘기했던 gradient는 정확하게 어떻게 계산되는건지에 대해서 이번 시간에 배워보고사실 neural network에 대한 업데이트를 하려면각각의 레이어에 대해서 gradient를 구해야하는데 이를 어떻게 하는지 살펴본다 우리가 앞에서 봤던 loss function이다loss function은 데이터, 모델, 파라미터를 기준으로 구한다고 했다 위는 hidden layer가 3개가 있는 neural n..

[DL] Fitting Models

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 이번 시간에는 neural network를 어떻게 fitting 시키는지에 대해서 배워보자이번 시간에는 기본적인 gradient descent에 대해서다음시간에는 back propagation에 대해서 배운다 우리가 training을 하려면 데이터가 있어야하고이걸 바탕으로 loss function이 있어야한다 이번 교재에서는 데이터의 개수를 I라고 표기하는데이걸 가지고 우리가 어떤 함수의 파라미터인 phi를 조절하는 것이다그래서 이때의 loss를 계산하라면 3개가 필요한데파라미터, 모델, 데이터이다 위를 바탕으로 loss를 계산하면 그게 train loss가..

[DL] Deep Neural Networks

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 이번 시간은 딥러닝의 두 번째 시간인Deep Neural Network에 대해 배웠다지난 시간에 배운 Shallow Network는 hidden layer가 1개인 것이었다면Deep Neural Network는 hidden layer가 2개 이상인 것을 말한다 오늘 내용의 목차는 위와 같다 우선 2개의 network를 합성하는 방법을 알아보고이게 어떻게 deep neural network와 연결이 되는지 살펴보자 이렇게 2개의 shallow network가 있다고 가정해보자input이 1개이고 hidden unit이 3개이다 첫 번째 input이 x이고 첫..

[DL] Shallow Neural Network

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 오늘부터 딥러닝에 관한 내용을 배운다딥러닝부터는 새로운 교제를 사용한다고 한다 오늘 배울 내용은 shallow neural network이다보통 neural network에서 hidden layer개 인것을 shallow neural network2개 이상인 것을 deep nueral network라고 한다 우리가 처음에 배운 linear regression을 한 번 잘 생각해보자input으로 들어가는 여러 개의 feature들을 벡터로 만들고그 벡터를 어떠한 선형 모델에 집어넣은 다음 output을 받는다이 linear regression에서 모델의 예측..

[ML] Clustering (k-means clustering, hierarchical clustering)

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다오늘은 중간고사 후 머신러닝의 마지막 시간clustering에 대해서 배운다다음 시간부터는 딥러닝 내용으로 넘어간다 cluserting에 대해서 살펴보자 clustering이란 데이터포인들이 있으면 이들을 어떻게 subgroup으로나눌건지에 대한 내용이다한 마디로 데이터포인트들을 partition으로 나누는 것이다데이터들은 x가 존재하고 y는 있을수도있고 없을 수도 있는데clustering도 unsupervised learning이기 때문에 y를 신경쓰지않는다오직 x feature만 보고 clustering을 수행한다 그런데 어떤 데이터들이 가까운지 비슷한지 다..

[ML] Principle Components Analysis (PCA)

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 이번 시간에 배울 내용은 Principle Components Analysis우리나라말로는 주성분분석이다 우선 unsupervised learning에 대해서 배워보자오늘 배울 PCA는 대표적인 unsupervised learning 중에 하나다 unsupervised learning은 우리 수업 1강에 잠깐 나왔는데x와 y의 관계를 학습하는 것이 우리가 지금까지 배운 supervised learning이라면unsupervised learning은 y값이 아닌 feature들에만 관심이 있다y값이 아예 없을 수도 있고, 혹은 있지만 아예 관심이 없다 그래서 PC..

[ML] Support Vector Machine (SVM)

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 이번 시간에는 딥러닝의 시대가 도래하기전의 딥러닝 역할을 했던support vector machine에 대해서 배워본다 support vector machine은 아주 멋진 방법론이라고 한다이걸 배우면 여러가지로 classification 문제를 다룰 때의 좋은 apporach를 배울 수 있다 SVM의 목적은 binary classification이다이 binary classification을 directly하게 하는 것인데결국 데이터들은 어떤 feature space의 multi-diemnstion 공간에 존재한다근데 이 공간을 어떻게 binary하게 자를까에 ..

[ML] Tree-based Methods 2편 (Bagging, Random Forests, Boosting)

본 게시글은서울대학교 데이터사이언스대학원 오민환 교수님의데이터사이언스를 위한 머신러닝 및 딥러닝1 수업을학습을 목적으로 재구성하였습니다 지난 시간에 이어서 오늘은 tree-based method bagging, random forests, boosting에 대해서 배워본다 우선 bagging에 대해서 살펴보자 지난 시간에 tree-based method들의 장단점에 대해서 배웠었는데단점부터 살펴보자면 우선 decision tree는prediction accuracy가 그렇게 썩 좋지 않았다bagging은 이러한 낮은 성능을 극복하기 위한 방법이다 bagging을 지금은 decision tree에 적용할 수 있는 방법으로 배우고있지만bagging은 굉장히 general한 method이다 bagging..