본문 바로가기

분류 전체보기

(108)
Fisher Discriminant Analysis FDA는 linear classifier의 종류로 데이터를 project 시켜 그 분산을 사용하여 적절한 boundary를 찾아내는 방법이다 먼저 데이터를 boundary에 project 시킨 것을 어떻게 나타내는지 알아보자 이렇게 두 벡터가 있을 때 w 벡터에 x 벡터를 투영시킨 위치는 $ w^Tx $로 나타낼 수 있다 두 벡터를 inner product 시킨다면 $ w \cdot x = || w || || x || cos \theta $이고 이 때 $ ||w|| $ 는 1이고 벡터 x를 w에 투영시킨 길이는 $ ||w|| cos\theta $이기 때문이다 이 방법을 사용하여 모든 N개의 데이터를 w 벡터에 투영시켰다고 생각한다면 그 위치들의 평균은 $ \hat{m} = {1 \over N} \sum_..
Online learning - Perceptron Algorithm 인공지능 수업에서 배운 내용에 추가로 공부한 내용을 정리를 해보려고 한다 perceptron convergence theorem $$ \sigma(t) = \begin{cases} 1, & \mbox{if }t>=0\\ -1, & \mbox{if }n
[ICPC] Rectilinear Regions 백준 14957번으로 풀어본 icpc 문제 u계단이 위에 있을 때 계단 사이의 공간 크기를 전부 구하는 문제였다 뭔가,,,이런 상황을 푸는 알고리즘이 있을 것 같은데 이론 공부가 부족해서 그냥 대충 해봐야지 하고 시작했다 생각은 되게 금방했는데 index 다루는데 실수가 많아서 오래 걸렸던 문제 바로 코딩 들어가지 말고 앞으로는 노트에 인덱스 정리하고 코딩 시작해야겠다ㅠㅠ 이런 순서로 움직이면서 rectilinear region의 개수와 넓이를 세었다 이 때 시작점과 끝점 처리하는곳에서 실수가 있었는데 시작점과 끝점은 음의 무한대, 양의 무한대로 생각하면 된다 그래서 두 계단이 교차 되고 나서야 왼쪽,오른쪽이 닫혀서 넓이로 셀 수 있다 계단의 시작점 말고 rectliner region이 만들어질 수 있는..
[ICPC] Philosopher’s Walk 백준 14956번을 통해 풀어본 icpc 예선 문제! input크기만 봐도 절대 다 채우는걸로는 안되겠다 싶었다 $ 2^{15}*2^{15} =2^{30} $ 까지 채워야하는 것에 그 전것도 저장해야하고.. 암튼 재귀로 나누어서 풀어보기로 했다 어떻게 풀기는 했지만 너무 노가다로 풀어서 시간도 꽤 많이 들었고 아쉽다 처음에 사분면으로 나누는 것은 쉽게 재귀로 구현했다 m 값을 그대로 쓰면 나머지 0일때 처리해주기가 까다로워서 -1을 해주고 시작했다 그렇게 사분면을 나누고 나눈 사분면에 따라 중심값을 이동시켜 주면서 좌표를 찾아내었다 처음에는 주어진 n값의 절반인 (n/2,n/2)가 중점이 되고 그 다음부터는 사분면에 따라 중점 결정! 여기서부터 노가다가 시작됐다ㅋㅋㅋ 이렇게 사분면 값을 0~3으로 나타내..
[논문 정리] Deep Compression : Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding 졸업프로젝트를 시작하면서 하드웨어 최적화와 관련된 다양한 논문을 읽고 있어 정리해보고자 한다 이 논문은 2016년에 나왔고 글을 쓰는 현재 3900회가 넘게 인용되었다고 나오고 있다 교수님께서 예시로 들어주신 pruning의 개념이 포함된 논문이라 읽기 시작했는데 추가로 다양한 개념들을 알 수 있었다 Abstract 임베디드 시스템에서는 연산량과 메모리 사용량이 중요 연산량을 고려하지 않으면 임베디드 시스템에서 사용 X 3 stage pipelines : pruning → trained quantization → Huffman coding 처음 두 단계 후, 남은 연결과 정량화된 중심들을 미세하게 조정하기 위해 네트워크를 재교육 필요한 용량이 줄어들어 off-chip DRAM 대신 on-chip SRAM..
[ICPC] Parentheses 백준 16362번으로 풀어본 icpc 예선 문제 예전에 인턴 프로젝트 할 때 코드 tokenizer 만들면서 lex,yacc 쓰기 전에 아무것도 모르고 손수 코드를 작성한 적이 있었는데 그 생각하면서 코드 그냥 노가다로 작성해보았다 분명 재귀로 예쁘게 짤 수 있을 것 같은데 막상 짜려니까 코드가 잘 안나왔다ㅠㅠ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 7..
[ICPC] Working Plan 백준 16368번으로 풀어본 icpc 문제 해결해야 할 일과 일들을 할 사람들이 존재하는 상황에서 일을 끝내기 위해 며칠에 몇시간의 일을 해야하는 지와 각 사람들이 총 몇시간 일할수 있는지가 주어진다 또한 사람들은 한번에 며칠을 연속으로 일해야하고 일한 후에는 며칠을 쉬어주어야한다 이 때 가능한 방법이 있으면 1과 어떻게 사람을 배치해야 하는지 없다면 -1을 출력해야한다 가능한 방법이 있는 경우 원래 일보다 추가로 일해도 되는지가 문제 해석 중 헷갈렸지만 고려하지 않아도 정답인정이 되었다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44..
[ICPC] What’s Mine is Mine 백준 17979번으로 풀어본 icpc 지역 예선 문제 마지막 번호였던 L번 역시 문제 순서랑 난이도는 다르다 이 문제는 여러 종류의 광석이 있고 그 광석들을 채굴할 때 가장 돈을 많이 벌 수 있는 경우를 찾는 문제이다 이 때 광석을 캐서 벌 수 있는 돈은 광석이 나오는 (end time - start time) * price이다 DP로 풀면 될 것 같아서 먼저 DP 식을 세워보았다 DP[i] = i시간까지 채굴해서 얻을 수 있는 최대 금액 그리고 여기에 이전 값을 어떻게 활용할지에 대해 생각해보았다 현재 시간이 특정 광물의 end time일 때 그 광물의 start time의 DP값에서 이 광물을 더 한 것이 DP[i-1]보다 큰 지 확인해보았다 이 부분에서 실수를 해서 처음 풀이가 틀렸는데 특정 시간에..