1. 선형회귀분석 주어진 n개의 데이터에서 이들을 가장 잘 설명하는 선형모형을 찾는다 이전에는 무어펜로즈 역행렬을 이용하여 찾았다 무어펜로즈 역행렬을 이용하여 오차의 norm을 최소화하여 회귀계수 β를 찾는다. 무어펜로즈 역행렬은 컴퓨터 계산 시간 측면에서 비효율적이다 변수 수 m에 따라 O(m2)이라고 한다. 대안으로 경사하강법을 이용하여 회귀계수를 추정할 수 있다. 2. 선형회귀분석에서의 경사하강법 선형회귀분석은 위에서도 보였지만 y−Xβ의 norm을 최소화하는 β를 찾는것. 그러므로 y−Xβ의 norm을 β로 미분한 그래디언트 벡터를 구한다 그래디언트 벡터를 구하면 경사하강법을 이용하여 β에 그래디언트 벡터를 빼서 얻은..
1. 자료구조 자료를 효율적으로 접근하고 수정하기 위해 자료를 조직, 관리, 저장하는 방법 상황에 따라 데이터를 다루는데 시간과 메모리를 효율적으로 사용할 수 있는 자료구조를 사용해야함 선형 구조와 비선형 구조로 나뉜다 2. 선형구조 자료를 구성하는 데이터들이 직선 형태로 순차적으로 나열되어 있는 구조 전후 데이터들 간에 일대일 관계 대표적으로 스택(stack), 큐(queue), deque, 리스트(list) 등이 모두 선형구조이다. 3. 비선형구조 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 구조 전후 데이터들 간에 1:N 관계를 가짐 대표적으로 트리(tree), 그래프(graph)가 비선형구조이다. 4. 참고 https://noahlogs.tistory.com/28 [자료구조] 스택, 큐, 데..
1. 스택(stack) 나중에 넣은 데이터를 먼저 반환하도록 설계된 자료구조 Last In First Out(LIFO) Data 입력을 push, 출력을 pop 위 그림1은 스택을 가상적으로 표현한 그림 4를 먼저 넣고 다음에 10을 넣었다 마지막에 들어간 10을 처음으로 빼내는 모습 ------------------------------------------------------------------------------------------------------------------------ 이름 그 자체를 생각해보면 외울것이 아니다 데이터를 넣을수록 계속 쌓이는(stack) 자료구조 쌓여있는 구조(stack)에서 무언가 빼낼려면 안에있는 것보다 밖에있는 것을 먼저 뺄수있다는 것을 생각한다면? --..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다 다트 게임은 총 3번의 기회로 구성된다 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨시 점수에서 ..
1. Optimizer 일반적으로 최적화 알고리즘으로 gradient descent method를 사용하는데 손으로 하기도 어렵고 귀찮다. 그래서 요즘 컴퓨터가 다 계산해주는데 어떻게 계산해주느냐에 따라 여러가지 종류가 나왔다. 2. Gradient Descent 일반적인 gradient descent 방법 가중치에 그래디언트와 learning rate의 곱을 빼면서 update한다. 문제는 learning rate를 어떻게 잡아야할지가 고민이다. 너무 크게 잡자니 overshooting으로 학습이 안되는 현상이 나타나고 너무 작게 잡자니 너무 학습이 느림 3. Momentum 어떻게 하면 최적치에 더 빨리 갈수 있을까라는 생각에 이전 gradient의 정보를 가진 momentum을 이용하자. 이전에 g..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr 피보나치 수는 F(0)=0,F(1)=1일 때 1 이상의 n에 대하여 F(n)=F(n−1)+F(n−2)가 적용되는 수 입니다. 예를 들어 $$F(2)= F(0)+..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.