20/07/12 ~ 07/16

  • 7/12
    • 백준 6549 히스토그램에서 제일 큰 직사각형 풀이
      • 빨리 풀고 싶었으나 엄청 오래걸렸다. 맨처음에는 queue로 했었는데 시간초과가 나서 아래에 알고리즘 분류를 봤는데 스택이 있어서 스택으로 생각을 하고 풀었다. 몇 가지 규칙정하는게 어려웠다.
    • 백준 1029 그림교환 실패
      • 설마 비트마스킹으로 일일히 다이나믹프로그래밍 해야하나 했는데 진짜 이거였다.
  • 7/13
    • 백준 10159 저울 플로이드 와샬로 재풀이
  • 7/14
    • 백준 16236 아기상어
  • 7/15
    • 백준 1937 욕심쟁이 판다
      • 정렬, 우선순위 큐로 풀었음
    • 백준 2151 거울 설치
      • 설치 방향을 고려해서 풀어야하는 문제였다.
  • 7/16
    • 백준 6209 제자리 멀리뛰기
      • 정렬,이분탐색
    • GoogLeNet 정리 및 업로드
      • 이전에 읽었었는데 그때는 아무것도 모를때라 이해가 낮았고 오늘 까먹은 부분다시 공부해서 정리했다.

20/06/30 ~ 07/10

  • 6/30
    • 알고리즘 스터디 - 프로그래머스 라면공장 1시간내 풀이 실패 ㅠㅠ
    • 조건부 기댓값과 최소제곱 예측 정리 및 업로드
    • 독립 동일 분포, 큰 수의 법칙 정리 및 업로드
  • 7/1
    • 백준 2110 공유기 설치 풀이
    • 백준 14502 연구실 풀이
    • Alex net - data augmentation 추가
    • Alex net - data loader 구조 변경, train iterator 추가
  • 7/2
    • 백준 16234 인구이동 풀이
      • 구현이 1시간 살짝 넘음
  • 7/3
    • 백준 16398 행성연결 풀이
      • 다익스트라로 풀려했는데 안떠올랐다 찾아보니 MST(Minimum spanning tree) 문제였고 2가지 풀이에 대해 공부했다.
      • Kruskal
        • 비용이 낮은 순으로 정렬하고 Union, find를 사용해 동일 트리로 만든다.
      • Prim
        • 한 vertex를 출발로 지정하고 다른 극점의 비용을 보며 최소화 한다. 우선순위큐를 이용한다
    • Alexnet Implemenation
      • Optimizer, Model Saver 추가
      • loss function 분리, train 나머지 코드 추가
      • slice로 하면 메모리 문제로 from_generator로 data iterator 변경
  • 7/4
    • 백준 14890 경사로 풀이
    • Alexnet - evaluation code 추가
    • 자소서 작성
  • 7/5
    • 백준 1328 고층빌딩
      • 푸는데 실패했다….다이나믹프로그래밍으로 하는것 까지는 알았는데 case에 대해 생각하기가 어려웠다. 나중에 다시 풀어봐야겠다.
    • AIFFEL 면접 질문 공부
    • 자소서 작성
  • 7/6
    • 프로그래머스 디스크컨트롤러
      • 처음에 계산공식을 잘못 생각해서 30분 날린덕에 구현은 1시간 조금 넘게 걸렸다. 난이도 자체는 그렇게 어렵진 않았다.
    • 함수형 프로그래밍 기본 컨셉 공부를 했는데 살짝 부족하게 이해한것 같다.
  • 7/7
    • 푸리에 공부
    • 면접일정 하나가 더 잡혔다.
  • 7/8
    • 프로그래머스 라면공장
      • 스터디 시작 바로전에 풀었다. 우선순위 큐 이용해서 푸니까 빨리 풀렸다. 이전에는 왜 못풀었지….
    • 알고리즘 스터디 - 프로그래머스 조이스틱
      • 40분 이내에 푸는건 실패하고 1시간 이내에 푸는것은 성공했다.
      • 코드를 너무 급하고 조잡하게 짠것같다.
  • 7/9
    • 백준 3020 개똥벌레 - 1시간 조금 초과
      • 맨처음에는 단순하게 하나씩 접근하는걸로 풀었다. 당연히 시간초과.
      • 이후 정렬한 다음 lower_bound를 사용해 풀었다. 시간초과 될줄 알았는데 통과…
      • 다른 사람 코드를 보니 기둥 높이 기준으로 이후 파괴할 기둥이 몇개로 증가 또는 감소할지를 입력해서 푸는방식이었다.
    • 블로그 테마 변경
      • html 볼줄도 모르면서 카테고리 눌렀을 때 서브 카테고리 나오도록 변경하느라 힘들었다.
  • 7/10
    • 백준 1806 부분합 - 30 분?
      • 이전에 풀었던 거라 한번에 통과할 줄 알았는데 for문 설정을 잘못했다. 다음부터는 이런거 확인 하고 넘어가야겠다.
    • 백준 10159 저울 - 30~40 분
      • 구조체 선언하고 되게 조잡하게 풀었고 상관관계를 잘못계산해서 몇번 틀렸다.
      • 다 풀고나보니 플로이드 와샬 알고리즘으로 분류되어있다. 공부한 이후에 다시 풀어봐야겠다.
    • VGG 논문 정리
      • Overfeat에서 차용한 부분이 test시에 있는데 이것까지 구현한 사람을 못봤다. 구현할 때 이부분을 할까 말까….

평소에 알고리즘을 너무 느긋하게 푸는 것 같다. 아직 시간내에 빠르게 구현하는 능력은 없는 것 같다. 혼자 시간 정하고 풀어봐야겠다.

1달동안 자소서를 너무 안썼던거 같아서 이번달부터 주말에는 자소서를 써야겠다.
면접보면서 나랑 잘맞는다는 회사라면 들어가야지.

VGG net

VGG는 2014년 Oxford 대학의 Visual Geometry Group에서 연구되었으며 2014 Image Net Challenge에서 2등의 성과를 냈다.
1등인 GoogLenet보다 구현하기 간편하다는 점에서 VGG가 많이 이용되었다.
VGG와 GoogLenet의 공통점은 모델의 layer를 깊게 쌓아 올리기 위해 연구되었다는 점이다.

More …

독립 동일 분포(i.i.d), 큰 수의 법칙

독립 동일 분포

  • 각각의 분포(주변분포)는 모두 같다.
  • 모두 독립이다.

위 조건을 만족할 때, 독립 동일 분포에 따른다고 한다. 영어로는 independent and identically distributed이며 줄여서 i.i.d.라고 쓸 때가 많다.

큰 수의 법칙

확률변수 \(X_{1}, X_{2}, ... , X_{n}\)에 대해 그 평균 \(Z\)는 다음과 같다.

\[Z \equiv \frac{X_{1}+X_{2}+ ...+X_{n}}{n}\]

지금 만든 확률변수 Z의 기대값은 다음과 같이 ‘각각의 기대값’의 평균이 된다.

\[E[Z]= E\left[\frac{X_1+X_2+...+X_n}{n} \right]=\frac{E[X_{1}+X_{2}+...+X_{n}]}{n} \\ =\frac{E[X_{1}]+E[X_{2}]+...+E[X_{n}]}{n} =\frac{n\mu}{n}=\mu\]

또한, \(X_{1} \sim X_{n}\) 가 독립일 경우 덧셈의 분산은 분산의 덧셈이된다. (확률변수가 1/n배 되었으므로 분산은 \(1 / n^{2}\)배가 된다.)

\[V[Z]=\frac{V[X_{1}]+V[X_{2}]+...V[X_{n}]}{n^2}\]

여기서 \(X_{1} \sim X_{n}\)가 i.i.d. 일 때는 모든 분산은 표준편차의 제곱으로 동일하다.

\[V[Z]=\frac{n \sigma^2}{n^2} = \frac{\sigma^2}{n}\]

여기서 n이 무한에 가까우면 \(V[Z]\)는 0에 수렴한다. 이를 바꿔 말하면 ‘개수 \(n\)을 무한히 늘리면 평균 \(Z_{n}\)은 오차가 없어지므로 \(\mu\)에 수렴한다’. 이 법칙을 ‘큰 수의 법칙’이라고 한다.