본문 바로가기

분류 전체보기

(49)
EECS 498-007 / 598-005 Lecture 9 : Hardware and Software 이번 시간에는 딥러닝에서 쓰이는 하드웨어 - 소프트웨어 순으로 알아볼 것인데, 딥러닝에서의 연산은 CPU와 GPU를 주로 사용한다. 현재 대부분의 GPU는 NVIDIA와 AMD의 GPU가 쓰이고 있으며, 그중에서 딥러닝 분야에서는 NVIDIA GPU만이 딥러닝 관련 소프트웨어를 폭넓게 지원하고 있어 딥러닝에서의 GPU는 NVIDIA GPU를 뜻한다고 보면 된다. 위 슬라이드는 CPU와 GPU의 달러 당 GigaFLOPs를 나타낸 것인데, CPU와 GPU 모두 우상향 하지만 특히 GPU의 경우 2012년부터 급격한 증가를 보여주는 데, 이 때문에 AlexNet 이후부터 모델의 크기가 급격히 커질 수 있었다. CPU의 경우 적지만 강력한 코어를 가지고 있고, GPU의 경우 1개만 놓고 보면 성능이 좋다 하기..
EECS 498-007 / 598-005 Lecture 8 : CNN Architectures 이전 시간에는 Convolution Network의 구성 요소들에 대해서 배웠다. 이번 시간에는 이 구성 요소들을 어떻게 조합할지에 대한 것인 CNN 아키텍처에 대해서 배워볼 것이다. 먼저 CNN의 큰 발전을 이끈 ImageNet Classification Challenge를 따라가며 살펴볼 것이다. 대회의 초창기였던 2010년과 2011년 모두 신경망 모델이 아니라 임의로 조합하고 임의로 선정한 feature로 구성된 'rule'기반 다층의 레이어를 쌓고 마지막으로 Linear Classifier를 쌓은 모델을 사용했지만, 2012년 CNN 아키텍처인 AlexNet이 엄청난 격차를 보여주면서 Convolution Network는 컴퓨터 비전의 전면에 서게 되었다. AlexNet은 오늘날 딥러닝에서 쓰이..
EECS 498-007 / 598-005 Lecture 7 : Convolutional Networks 강의 링크 https://www.youtube.com/watch?v=ANyxBVxmdZ0&list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r&index=7 강의 슬라이드 https://web.eecs.umich.edu/~justincj/slides/eecs498/498_FA2019_lecture07.pdf 지금까지는 다차원 배열로 구성된 이미지를 벡터로 만들어서 처리했는데, 이 과정에서 spatial structure는 사라지게 되었다. 그래서 이번 시간에는 spatial structure를 처리할 수 있는 Convolutional Network에 대해 배워볼 것이다. Convolutional Network는 기존에 배웠던 Fully-Connected Layers와 Activation..
EECS 498-007 / 598-005 한국어 강의 https://sites.google.com/view/statml-smwu-2020s 통계적기계학습 (숙명여대 통계학과 2020-1) 딥러닝은 인공지능(시각처리, 청해, 언어이해)의 필수적인 개념이면서, 고성능의 기계학습기 건설을 위한 유용한 방법론이기도 합니다. 본 강좌에서는 통계학/수학 전공지식에 기반하여 딥러닝 sites.google.com EECS 498-007 / 598-00 페이지 보다가 한국어 강의가 있는 걸 발견했다. Other Information 한국어 강의 링크가 있었는데 매번 과제받을 때마다 왜 못 봤지 싶다 ㅋ 어쨌든 숙명여대 통계학과에서 강의 슬라이드 가지고 강의를 진행했는데 통계학과 강의이다 보니 강의에서 빠진 내용이 있는거 같은데 참고용으로 나쁘진 않은 것 같다. 그리고 교수..
EECS 498-007 / 598-005 Assignment #2-2 Two Layer Neural Network 부분은 먼저 forward pass 부분을 구현하는 것으로 시작된다. 더보기 def nn_forward_pass(params, X): """ The first stage of our neural network implementation: Run the forward pass of the network to compute the hidden layer features and classification scores. The network architecture should be: FC layer -> ReLU (hidden) -> FC layer (scores) As a practice, we will NOT allow to use torch.relu and to..
EECS 498-007 / 598-005 Assignment #2-1 ==================================================================== Backpropagation 강의 보고 왔는데, 확실히 강의 보고 했으면 훨씬 쉽게 했을거 같다. 20.01.19 ==================================================================== 과제는 Linear Classifier와 Two Layer Neural Network로 구성되어 있는데, 먼저 Linear Classifier에서는 SVM Loss와 Soft Max 방식의 Loss Function을 navie 한 방식과 vectorization을 적용한 방식으로 구현하고, SGD 방식에서 batch를 가져오는 것을 구현한다. 그리고..
2228 구간 나누기 다이나믹 프로그래밍으로 해결해야 하는 knapsack 계열의 문제이다. vec = vector(n + 1); dp = vector(n + 1, vector(m + 1, -1)); 먼저 배열이 저장될 벡터 vec와 메모라이즈 된 값이 저장될 벡터 dp를 만들어주었다. 여기서 dp[i][j]의 의미는 i번째 배열까지 탐색했을 때, j개의 구간으로 조합했을 때의 최댓값을 나타내며, 메모라이즈 여부를 확인하기 위해서 -1로 초기화하였다. int search(int n, int m) { if (m == 0) return 0; if (n 0; --i) { partial_sum += vec[i]; temp = partial_sum + search(i - 2, m - 1); if (temp > dp[n][m]) dp[..
239 Sliding Window Maximum 주어진 배열에서 window를 한 칸씩 옯겨가며 window의 최대 원소를 반환하는 문제이다. 입력이 크기 때문에 문제 이름대로 sliding window 방식으로 풀면 당연히 시간 초과가 나버린다. 그래서 이 문제에서는 앞, 뒤로 push, pop 연산을 수행할 수 있는 deque를 사용해야한다. deque로 배열을 순회하며 새로운 원소들을 넣어주는 데, 이때 새로 집어넣어 줄 원소가 deque의 원소보다 크면 deque를 완전히 비워준다. 그리고 deque에는 매번 window로 참조하지 않는 원소가 포함되면 그것도 빼주어야 하고 이를 위해 deque에는 배열의 인덱스를 넣어준다. 말로 적으면 간단하지만 첨할 때는 예외 처리에서 빼먹은 거 찾는 거에서 막혀서 첨에는 deque로 풀려다가 접고 이진트리..

728x90