본문 바로가기

반응형

컴퓨터공학

[프로그래머스/C++] K번째수 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; vector temp; for(int i=0; i 더보기
[프로그래머스/C++] 내적 프로그래머스/C++/내적 https://programmers.co.kr/learn/courses/30/lessons/70128?language=cpp 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr #include #include using namespace std; int solution(vector a, vector b) { int answer = 0; for(int i=0;i 더보기
[CS231n 9강 정리] CNN Architectures 오늘은 CNN 아키텍쳐들에 대해서 알아보겠습니다. LeNet-5 - 산업에 성공적으로 적용된 최초의 convNet - 이미지를 입력으로 받아 stride=1인 5X5 필터를 거치고 몇개의 conv와 pooling layer을 거침 - 마지막에 FC 2012년 AlexNet - 최초의 large scale CNN - ImageNet Classification Task 성능 좋음 - ConvNet 연구 유행시작 위와 같은 레이어들로 이루어져 있다. 슬라이드에 output volume과 파라미터 개수에 대한 간단한 퀴즈가 있다. 까먹을 때 참고하면 좋을거 같다. 더보기 tips - pooling layer에는 파라미터가 없다. - 실제 입력은 227x227 - 총 파라미터 60M 그당시 GTX 580을 사용했.. 더보기
[CS231n 8강 정리] 딥러닝 소프트웨어 (Deep learning software) 오늘은 실제 학습시에 사용하는 소프트웨어들에 대해 알아봅니다. 그전에 cpu와 gpu가 뭔지부터 알아보자. 먼저 CPU, central processing unit은 GPU에 비해 비교적 작은 사이즈로 제작이 되고, 램에서 메모리를 가져다가 사용한다. GPU(Graphics processing unit)의 경우 쿨러도 따로있고 파워도 많이 먹는다. gpu의 병렬연산이 행렬곱 연산에 최적화되어 있기 때문에 딥러닝 연산에 사용되고 있고, 딥러닝은 엔비디아가 거의 독점하고 있다. CUDA를 이용해서 gpu에서 실행되는 코드를 직접 작성할 수 있으나 상당히 어려운 일이다. 우리는 그냥 라이브러리 쓰면되고, 딥러닝을 위해 CUDA를 직접작성하는 일은 없을 것이다. 어쨋든 GPU programming 언어는 다음과.. 더보기
[CS231n 7강 정리] 신경망 학습 (Training Neural Networks II) 6강 살짝 복습하고 가겠습니다. 데이터 전처리를 해야 하는 이유 원점을 중심으로 조금만 움직여도 왼쪽 그림같은 전처리가 되어있지 않은 데이터들의 경우 classification이 잘 되지 않는다. 손실함수는 아주 약간의 가중치 변화에도 민감하다 학습 그래프에 대한 직관 train set 성능은 계속 올라가고 loss도 줄고 있는데 validation이 침체중이라면 오버피팅되고있는 것이다. + 추가적인 regularization이 필요한 것! hyperparameter Search Block Coordinate Descent(BCD) 같은 방법도 있음 Q. Low Learning rate를 주면 local optima에 빠질 수 있지 않냐? - 그런일이 많이 발생하지는 않는다 오늘 배울 것은 Fancier.. 더보기
[CS231n 6강 정리] 신경망 학습 (Training Neural Networks) 더보기 Q. input의 3컬러채널과 필터의 내적값이 다 합해지는건가? 맞음 오늘은 신경망 학습시에 필요한 기본 설정들에 대해서 다뤄봅니다. 순서는 이렇습니다. Activation Functions 앞선 강의에서도 언급했던 것처럼, input이 들어오면 가중치와 곱해지고, 비선형 함수인 활성함수를 거쳐 해당 데이터의 활성화여부를 결정해준다고 배웠습니다. 활성화 함수에는 여러가지가 있습니다. 오늘은 각 활성함수의 문제점과 이를 어떻게 개선해나갔는지에 대해 알아봅시다. Sigmoid 문제점 1 - 음/양의 큰값에서 Saturation되는 것이 gradient를 없앤다. - x가 0에 가까운건 잘 동작함 문제점 2 - 출력이 zero centered가 아니다 - 만약 x가 항상 양수일 떄, w의 gradien.. 더보기
[CS231n 5강 정리] CNN(Convolutional Neural Network) 4강에서 놓친부분들이 몇개 있어 정리하고 가려 합니다. 지난시간에 다중 레이어를 배웠고, linear layer과 non-linear layer들을 조합하여 신경망을 만들었습니다. 이는 Mode 문제를 해결함으로써 빨간색차, 노란색차와 같은 다양한 종류의 사물을 보다 러프하게 분류할 수 있도록 해줍니다. NN의 역사 오늘은 CNN을 배웁니다! 그 전에 간략히 주요사건들 정리하고 가볼께요 신경망 1957년 Frank Rosenblatt가 Mark I Perceptron machine을 개발 - 최초의 퍼셉트론 기계 1960년 Widrow와 Hoff가 Adaline and Madaline 개발 - 최초의 Multilayer Perceptron Network 1986년 Rumelhart - 역전파 제안, 신경.. 더보기
[CS231n 4강 정리] 역전파(Back propagation), 신경망(Neural Network) 지난시간까지 w와 스코어, loss function, 그리고 gradient를 배웠습니다. 오늘은 이제 실제로 analytic gradient(앞 강의에서 설명한 해석적 방식) 를 어떻게 계산하는지에 대해서 알아봅시다. 역전파(Back Propagation) 먼저, computational graph에 대한 이해가 필요합니다. 아주 쉬워요. 보시면 앞서 배운 과정들을 바로 떠올릴 수 있습니다. 아래와 같이 연산자와 피연산자들을 각 노드에 배치하여 함수를 완성하면 됩니다. 이제 이 그래프를 가지고 역전파(backpropagation)를 계산해봅시다. 역전파는 gradient를 얻기 위해서 chain rule을 사용하는데요, 대략적인 순서는 다음과 같습니다. - 함수에 대한 computational grap.. 더보기

반응형