전체 글
[프로그래머스] 다음 큰 숫자 문제풀이
bitset 의 존재만 알고 자세히 다루진 못했는데 이 문제를 풀면서 bitset에대해 더 알게 되었다. 다른문제풀이를 보니 계속 2로 나누어서 1의 개수를 세는 문제풀이도 있었고 , biset 의 함수중에 count 라는 함수를 써서 엄청 짧게 푼 문제풀이도 있었다. 많이 알 수록 간단해 지는것 같다. #include #include #include using namespace std; int solution(int n) { int answer = 0; bitset bit(n); string s1 = bit.to_string(); int ones=0; for(int i=0;i
[cs231n 강의 정리] Lecture 6 : Training NN part 2
Parameter Update SGD : 너무 느려서 실제 상황에선 쓰기 힘들다. 느린 이유 : loss function 이 수직으로는 경사가 급하기 때문에 빨리간다. 수평으론 반대로 느리게 간다. 지그재그로 가기 때문에 느리게 된다. 이런 문제를 개선하는 방법 : Momentum Update : Gradient descemt 에선 x 의 위치 직접 Update , Momentum Update에선 v (속도 , 0.5,0.9) 를 업데이트하여 x를 Update한다. If 언덕에서 공을 굴릴 때 : Gradient : 가속도에 비례 mu : 마찰 계수 -> 점차 속도가 느려진다. ( 경사가 급하지 않을 때 갈 수록 빨라진다 , 경사가 급할 때 minimum 을 지나갔다가 다시 돌아온다. ) 초반엔 Over..
[cs231n 강의 정리] Lecture 5 : Training NN part 1
ConvNets 은 data 가 많지 않아도 학습 가능하다 . -> fine tuning 때문이다. 1. Train on ImageNet 2. Finetune network on your own data 가중치 공유 Finetuning : 다른곳에서 학습 시켜 가져온 가중치들을 새로운 모델의 초기값으로 사용한다. -> network 학습 아래부분만 새로 학습한다. Terminal 은 무한이 아니다. ( 너무 많이 돌리지 마라 ) Mini-batch SGD 1. Sample a batch of data 2. Forward prop it through the graph, get loss 3. Backprop to calculate the gradients 4. Update the parameters usin..
[cs231n 강의 정리] Lecture 4 : Backpropagation and Neural Networks part 1
input 이 마지막에 어느정도 영향을 끼치는가 ? 이를 알기 위해 Backward Pass 필요하다. 함수를 하나의 layer 이고 forward pass 할 때 local gradient 를 구할 수 있다. ( 메모리에 저장 ) global gradient 는 backward pass 할 때 구할 수 있다. 이런식으로 끝까지 가게 되면 Backward pass z 가 여러개라면 더해주면 된다. Backpropagation Example Sigmoid function 을 이용한 간단한 방법 and gate : gradient distributor -> 전 gradient 를 그대로 전파 ( local gradient 가 1) mul gate : local gradient 가 곱하는 반대쪽 값이 된다. ..
[cs231n 강의 정리] Lecture 3 : Loss functions and Optimization
이번 강의에서 다룰 것들 : Score 에 대해 불만족하는 정도를 정량화하는 Loss functions , Loss functions 을 최소화하는 Parameter 값을 찾는 과정인 Optimization에 대해서 다룰것이다. SVM : Hinge Loss Sj = 잘못된 label의 score Sy(i) = 제대로 된 label의 score 질문 : SVM loss 구하는데 있어서 j=y_i 는 계산을 하지 않고 있다 . 만약 모든 class에 대해서 계산한다면 어떤 결과가 나올것인가 ? 답 : 각각의 Loss 에 1을 더하게 된다 . 질문 : sum 대신 score들의 mean값을 사용하게 되면 어떤 차이가 있는가 ? 답 : loss 를 minimize하는 parameter를 구하는 것이 목적이기 ..
[cs231n 강의 정리] Lecture 2 : Image classification
Image Classification : Computer Vision 에 있어서 가장 핵심이 되는 작업 ex) 고양이, 개, 트럭, 비행기 등 정해진 Label 이 있을 때 이미지를 보고 어떤것인지 판단 Image Classfication 이 이루어지면 Detection, Segmentation, Image captioning이 손쉽게 이루어진다. Image Classfication 을 할때 Semantic gap 이란 문제가 있다. Image는 숫자로 구성된 3D array. (0 ~ 255) Ex) 300 x 100 x 3 ( Height, Width , Color Channel ) Viewpoint Varation : 이미지는 보는 시각에 따라 다르게 보인다. Illumintaion : 조명때문에 ..
[C++] 백준 1149번 문제풀이
동적프로그래밍의 정의를 다시 생각하자 문제를 너무 편협적으로 보지말자, 문제 출제자는 생각보다 너그러울수도있다. #include #include using namespace std; int house[1001][3]; int main() { int N; int cost[3]; house[0][0] = 0; house[0][1] = 0; house[0][2] = 0; cin >> N; cout
[C++] 백준 1167 번 문제풀이
#include #include #include using namespace std; vectorv[100001]; bool visited[100001]; int max1 = 0; int maxnode = 0; void dfs(int cost, int start) { if (visited[start]) return; visited[start] = true; if (cost > max1) { max1 = cost; maxnode = start; } for (int i = 0; i > N; while (N--) { int..