목록공부 (29)
dev-logs

하고 있는 프로젝트에서 그래프 자료구조를 사용해보기로 해서 정리하는 글이다. 어디에 사용할건지 서로 다른 프레임에서 추출된 _feature points_를 _graph_로 만들면 프레임간 매칭단계 구현이 좀 더 단순해 지지않을까? 좀 더 세련되지지 않을까? 하는 생각으로 시작한다. Graph similarity? Graph isomorphism? Graph matching? graph matching 이라는 키워드로 처음 검색을 했다. 나는 template matching 처럼 두 객체 사이의 유사 정도를 판단하는 의미로 graph matching 이라는 단어를 쓴건데 graph matching 이라는 키워드는 내 생각과 다른 개념이었다. graph에서 matching 이라는 단어는 _subgraph_를..
다크프로그래머님의 글을 읽고 정리했습니다. 두 선분의 사이각 구하기 영상처리에서 각도 구하는 문제를 자주 접하게 된다. 3차원 월드좌표계(x,y,z) 뿐만 아니라 이미지 자체(u,v)에서 각도를 뽑아낼 일이 있을 때 각도 구하는 공식을 적었다. 두 벡터가 이루는 각 공식 cos−1(v1⋅v2|v1||v2|) 벡터내적을 벡터크기곱으로 나눈값의 코사인역수 두점 P1(x1,y1),P2(x2,y2) 과 기준점 P0(x0,y0) 이 있을 때, $v_{1}=(x_{1}-x_{0}, y_{1}-y_{0}), v_{2}=(x_{2}-x_{0}, y..
c++ unordered_map 을 사용하여 구현했다. 그런데 그냥 배열로도 풀어도 된다! #include //#include #include #include #include using namespace std; unordered_map clock1; unordered_map clock2; int n; string func10266() { cin>>n; unordered_map::iterator finder; for(int i=0; i> tmp; int key = tmp%360; finder = clock1.find(key); if(finder != clock1.end()) { //같은 키 존재하면 개수++ finder->second = (finder->second)++; } else { //존재하지 않..
보호되어 있는 글입니다.

CNN 구조 - 합성곱 계층 convolutional layer 과 풀링 계층 pooling layer이 추가됨. - Conv계층, 활성화함수, Pool계층 순으로 이루어짐. 마지막 계층은 Affine, softmax 완전연결 계층의 문제점 - Affine 계층은 완전연결 계층이다. 계층의 뉴런이 모두 연결되고 출력의 수를 임의로 정할 수 있다. - 입력 데이터의 형상(차원)을 무시함. - CNN은 데이터의 형상을 유지함. 이미지도 3차원 데이터로 입력받고, 다음 계층에도 3차원 데이터로 전달함. - CNN 합성곱 계층의 입출력 데이터를 특징 맵 feature map 이라고 한다. 합성곱 연산 Convolution - CNN에서는 필터의 매개변수가 가중치에 해당한다. 편향도 존재할 수 있음. 편향은 항상..
매개변수 갱신 최적화: 손실 함수의 값을 가능한 낮추는 최적의 매개변수를 찾는 문제 확률적 경사 하강법 SGD 탐색 경로가 비효율적임. 그때그때 작은 범위의 기울기에 따라 경로가 결정되어서? 모멘텀 Momentum 속도 개념을 적용. AdaGrad 학습에서 중요한 요소인 학습률을 적응적으로 조정하면서 학습 진행. 과거의 기울기 제곱을 계속 더함. 매개변수의 원소 중 크게 갱신된 원소는 학습률이 낮아짐. 가중치의 초기값 가중치 값을 작게 하여 오버피팅 억제. 0.01 * np.random.randn(10,100) if 초기값을 0으로 하면? 순전파 때 모두 같은 값이 전파된다. 그러면 역전파때도 가중치가 똑같이 갱신됨 -> 의미 없는 행동 -> 초기값은 무작위로 설정하는게 좋음 (활성화값의 분포가 고르게 ..
오차역전파법 backpropagation 수치미분법으로 loss함수의 기울기를 구하는것은 쉽지만 오래 걸린다. 하지만 오차역전파법을 사용하면 빠르게 기울기를 구할 수 있다. 계산 그래프 computational graph 역전파법을 쉽게 이해할 수 있다. 전체 연산에서 연산 하나하나를 국소화한다. 전체 연산을 단순화할 수 있고 각 연산의 중간 결과값을 보관하기 쉽다. 연쇄법칙 chain rule 합성 함수의 미분에 대한 성질: 합성함수의 미분은 각 함수의 미분의 곱. 5장이 되게 중요한 챕터인것같은데 솔직히 완전히 이해는 못하겠다... 출처: 밑바닥부터 시작하는 딥러닝(한빛미디어)

Repository 저장소 Commit 버전을 만든다. Discard 되돌린다. Conflict 두개의 branch가 같은 부분의 코드를 수정하고 merge되었을때 생김. Pull 원격저장소내용을 로컬저장소로 merge (두 저장소의 버전을 동기화함.) Push 로컬->원격 Checkout 원하는 branch로 전환 Rebase branch가 생긴 시점부터의 이력들이 함께 merge된다. (merge commit 생기지 않음) HEAD 표시방법 ~ HEAD로 부터 몇번째 전 버전인지 나타냄. ^ 브랜치가 여러개일 경우 몇번째 원본인지 나타냄. - 생활코딩 git 강의를 보고 정리하였습니다.

학습 - 훈련 데이터로부터 가중치 매개변수의 최적값을 획득하는 것. - 손실 함수(Loss function)를 지표로 해서 loss함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾아야 한다. - 기울기 경사법 이용. - 훈련데이터 training data와 시험데이터 test data를 섞으면 안됨! - 어떤 데이터셋에 지나치게 최적화된 상태 overfitting 을 피하는 것 중요 특징 추출 - 컴퓨터 비전 분야에서는 SIFR, SURF, HOG 등이 있음. - 딥러닝인 특징 추출도 사람이 개입하지 않아도 됨. 손실함수 Loss function - 신경망 성능의 '나쁨'을 나타내는지표 -> 결과값이 작을수록 좋음. 결과값에 -1을 곱하면 '좋음'을 나타내게 됨. - 평균 제곱 오차, 교차 엔트로피..
Dateset MNIST (28x28 gray) 1. http://yann.lecun.com/exdb/mnist/ 에서 직접 다운받기 2. python 스크립트 사용 원-핫 인코딩 one-hot encoding - 결과중 정답을 뜻하는 원소만 1이고 나머지는 0인 배열 입력층 뉴런: 784개 출력층 뉴런: 10개 은닉층: 2개(50, 100) 이미지 픽셀값 정규화 예측 함수 1. MNIST 데이터셋을 읽고 네트워크 생성. 2. 이미지 그룹을 돌면서(for문) 분류함수 호출 3. 분류함수의 최대 출력값을 갖는 인덱스 구함. 데이터백색화 data whitening - 학습속도와 성능을 개선하기 위해서 데이터 전처리 과정을 거치게 된다. 데이터백색화는 전체 데이터를 균일하게 분포시키는 전처리 과정이다. - 연..