본문 바로가기

분류 전체보기

(108)
develop with google kor 준비 과정 및 참여 후기 졸업이 얼마 남지 않은 시점이라 대학교 생활을 돌아보고자 참가한 다양한 프로그램의 준비과정과 후기를 작성해보고자 한다 먼저 1학년 겨울방학때 참여했던 develop with google 프로그램 1학년이라 기대도 안했는데 운이 좋아서 선정되었다 2017년 ~ 2018년 겨울방학에 참여하였고 지금은 이때와는 다르게 인턴십 형태로 변경된 것으로 알고 있다 먼저 코딩테스트로 선발과정이 시작되었다 구글 킥스타트를 사용하였는데 알고리즘을 백준으로만 풀어봤던터라 킥스타트 홈페이지가 익숙하지 않았다 게다가 file stream 사용을 잘 하지 못할때였는데 파일을 input.txt, output.txt 이런식으로 사용했어야 해서 너무 힘들었다 그 결과 small input 하나만 겨우 맞추었다ㅠㅠ 998등...^^ 1..
[Kaggle] Titanic Competition 타이타닉 생존자 예측하기 예전에 해보다가 정리 못하고 남겨둔 notebook을 다시 열어보았다 분명 정리해둔줄 알았는데 필요해서 찾아보니까 없어서 이번 기회에 다시 정리! 리더보드 보면 점수 1 나온 사람들이 너무 많아 목표를 어느정도로 잡아야하나 어려웠는데 discussion을 보면 85~90% 이상의 정확도를 가진 사람들은 cheating일 것이라는 의견이 대부분이라 80%로 목표를 잡고 데이터 분석을 시작해보았다 train data는 아래와 같다 찾아야 할 값은 Survived 즉 해당 승객이 살았는지 죽었는지이다 처음에 감이 안잡혀서 다양한 그래프를 만들어보았다 나이에 따른 Survived의 분포 지금 생각하니 단순한 violinplot 보다는 살아남은 사람의 비율을 찾는 것이 더 좋았을 것 같다 부모나 자식의 숫자인데 ..
[논문정리] Cnvlutin: Ineffectual-Neuron-Free Deep Neural Network Computing Cnvlutin: Ineffectual-Neuron-Free Deep Neural Network Computing Abstract 현재의 DNNs(Deep Neural Networks)는 0 곱셈도 진행해서 비효율적임. → Cnvlutin(CNV) : 정확성 손실 없이 이런 비효율적인 과정 모두 제거 - hierarchical data-parallel unit(계층적 데이터 병렬 유닛) 사용 - group들이 독립적으로 진행되는 걸 가능하게 함 → 비효율적인 계산 건너뜀 - co-designed data storage format이 병렬 유닛에서 조절을 할 수는 있지만 경로에서 계산을 하지 않도록 함 units + data storage → 데이터 병렬 구조를 만들어 메모리 계층 구조에서 정렬된 접근을 ..
[ICPC] Cosmetic Survey 백준 16358번으로 풀어본 Icpc 예선 문제 문제가 너무 길어서 읽기 싫었지만 문제 해석만 꼼꼼히 하면 의외로 쉬운 문제 input 크기가 작아서 3중 for문 까지 가능ㅎㅎ 문제가 복잡하니 조건을 정리해보자면 - 각 평가자들은 양의 정수로 rank를 주고 수가 적을수록 선호도가 높은 것이다 - rank는 유일하거나 연속하지 않다 - rank를 매기지 않았다면 선호도 우선순위에서 제외된다 각 사용자별 선호도를 입력 받은 후 d(X,Y)라는 notation에 맞추어 d 배열을 만들었다 이 배열은 X보다 Y를 확실히 선호하는 사람의 수이다 input 배열을 돌면서 각 사용자의 확실한 선호도가 존재하는 경우 d배열의 적절한 index를 증가시켜주었다 그다음 플로이드 와샬 알고리즘과 비슷하게 경유지를 정해서..
Neural Networks 봐도 봐도 헷갈리는 뉴럴네트워크 식의 index가 매번 헷갈린다 sigmoid function을 사용하는 neural networks의 objective function (loss function)을 정의하고 derivative를 구해보려고 한다 먼저 sigmoid function의 정의는 다음과 같다 $$ \sigma (t) = {1 \over {1+exp(-t)}} $$ $ \sigma(t) $의 값이 1/2 이상이라면 class 1, 아니라면 class 0으로 구분한다 여기에 우리는 $ x \in \mathbb{R}^D $로 주어지는 input을 사용해야하니까 t 대신 $ w^Tx - b $를 넣어서 사용하자 b는 bias term인데 이 bias term을 없애고 homogenous equatio..
System equations 연립방정식은 2개 이상의 미지수를 포함하는 집합이다 방정식의 개수와 미지수의 개수를 비교하여 세가지로 나눌 수 있다 Square system 미지수의 개수와 방정식의 개수가 같은 경우이다 두 직선의 교점과 같은 예시가 있다 $ y = ax + b $ , $ y = cx + d $ x,y의 두개의 미지수와 두개의 방정식! 이런 square system의 경우 solution은 unique하거나 없다 가우스 소거법을 사용해 solution space를 구할 수 있다 LU분해를 함께 진행해준다면 연산 시간을 줄일 수 있다 Under constrained system 미지수의 개수보다 방정식의 개수가 적은 경우이다 두개의 평면의 접선과 같은 예시가 있다 이때 미지수는 세개, 방정식은 두개가 되므로 두 평면이 만..
[논문 정리] Laconic Deep Learning Computing Abstract Laconic을 하드웨어 가속기(Hardware Accelerator)로 제시하여 실행 시간을 단축하고 딥 러닝 네트워크의 추론을 위한 에너지 효율을 높임 → 다른 최첨단 가속기를 능가하는 저비용, 단순성, 에너지 효율적 설계를 위해 작업 감소 잠재력을 포기 Motivation 성능을 향상시키기 위해서 에너지 사용량을 줄일 필요 convolution neural network에서 activation과 weight의 곱이 대부분의 연산 → 효과가 있는 연산만 적게 실행 큰 연산을 작은 여러개의 연산으로 분할 "A", activation이 zero이면 skip "A+W", activation이나 weight이 zero이면 skip "Ap" "Ap+Wp" 연산을 bit level로 분할 Ap,..
Finding roots $ f(x) = 0 $의 해를 찾는 방법은 여러가지가 있고 x값 또한 하나의 수, 평면에서의 좌표, 3차원 이상의 공간에서의 좌표 등 여러가지 형태로 나타낼 수 있다 이 때 closed form expression은 일반적으로 손으로 써서 계산했던 근의 공식이라던가 사칙연산으로 나타낼 수 있는 값과 같이 일반적으로 받아들여지는 연산들의 조합으로 이루어진 solution을 말한다 이와 반대로 non-closed form(open) expression은 재귀와 같이 식으로 나타낼 수는 없지만 적절한 값을 찾아낼 수 있는 solution이다 반복적인 연산은 프로그래밍으로 구현하게 된다 수치해석에서의 여러 해를 구하는 방법을 크게 세가지 카테고리로 나누어 알아보자 Graphcial Methods 해를 구하기 위..