일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Ai
- human-in-the-loop
- conditional_edges
- 밑바닥부터시작하는딥러닝 #딥러닝 #머신러닝 #신경망
- tool_calls
- rag
- removemessage
- humannode
- 밑바닥부터 시작하는 딥러닝
- 강화학습의 수학적 기초와 알고리듬 이해
- LangChain
- conditional_edge
- toolnode
- REACT
- Python
- tool_binding
- rl
- pinecone
- langgrpah
- 강화학습의 수학적 기초와 알고리듬의 이해
- summarize_chat_history
- langgraph
- add_subgraph
- lcel
- RecSys
- 추천시스템
- 강화학습
- chat_history
- subgraph
- update_state
- Today
- Total
목록분류 전체보기 (41)
타임트리
강화학습의 기본적인 매커니즘을 이해하기 위해서는 동적 계획법(dynamic programming)이라는 문제 해결을 위한 방법론에 익숙해지는 것이 좋다. 따라서, 동적 계획법을 이해하는 데 도움이 되는 수학적 귀납법을 먼저 간단하게 살펴보고 넘어가자. 수학적 귀납법 - $p_1,~p_2,...$를 참 또는 거짓인 명제라고 하자. 이때 1) $p_1$이 참이고 2) 모든 $n\ge1$에 대해 $p_n$이 참일 때 $p_{n+1}$도 참이면, 3) $p_1,~p_2,...$는 모두 참이다. 다음의 식을 수학적 귀납법을 통해 증명해보자. $$p_n: 1 + 2 + \cdots + n = \frac{n(n+1)}{2}$$ 증명 1) $p_1 = \frac{1\cdot2}{2}=1$ (참) 2) $p_n$이 참이..
강화학습: 주어진 상황(state)에서 보상(reward)을 최대화할 수 있는 행동(action)에 대해 학습하는 것 1. 강화학습의 특징 - 학습주체(agent)는 환경에 대한 정보를 모르는 상태에서 학습하기 때문에 특정 상황에서 적합한 행동을 찾기까지는 수많은 시행착오(trial & error)가 필요함 - 현재 선택한 행동이 미래의 순차적 보상에 영향을 미침(delayed reward) 2. Multi-armed Bandit 문제 강화학습의 모든 구성요소를 가지고 있지는 않지만, Multi-armed Bandit 문제를 통해 강화학습의 메커니즘을 간단히 이해해보자. 여러 대의 bandit machine이 있고 행동의 개수가 $k$로 정해진 상황에서 보상을 최대화하기 위해 어떤 행동을 취해야하는지 푸..
"[식 5.13]으로 이끄는 과정은 생략합니다" 밑바닥부터 시작하는 딥러닝 5장을 읽던 중 뭔가 불편한 부분이 있었다. 172페이지 [식 5.13]과 관련된 내용인데, 딥러닝 공부를 시작하고자 마음 먹으면서 내가 밑바닥부터 시작하는 딥러닝을 고른 이유는 기초 책 중 수식이 많아보였기 때문이다. 그런데 생략이라니.. 따라서 구글링을 통해 비슷한 내용을 발견하고 완벽한 증명은 아니지만 유도 정도는 해보고자 했다. 아래는 이를 간단하게 정리한 내용이다. 5.6.1 Affine 계층¶ 신경망의 순전파에서는 가중치 신호의 총합($Y=XW+B$)을 계산하기 때문에 행렬의 곱(내적; np.dot())을 사용했다. 이때 행렬의 차원이 서로 맞아야 $XW$를 계산할 수 있는데, 예를 들어 다음과 같아야 한다. 이처럼 신..
신경망 학습에서 가중치 매개변수에 대한 손실 함수의 기울기를 수치 미분으로 구했다. 수치 미분은 구현하기 쉽지만 계산 시간이 오래 걸린다는 큰 단점이 있다. 따라서 이번 장에서는 기울기를 효율적으로 계산하는 오차역전파법(backpropagation)을 다룬다. 5.1 계산 그래프¶ 계산 그래프(computational graph)는 계산 과정을 복수의 노드(node)와 엣지(edge)로 표현한 것이다. 5.1.1 계산 그래프로 풀다¶ 계산 그래프에서 노드는 원으로 표기하고 원 안에는 연산 내용을 적는다. 또한, 계산 결과를 화살표 위에 적어 각 노드의 계산 결과가 왼쪽에서 오른쪽으로 전달한다. 계산 그래프의 사용법을 간단히 알아보기 위해 다음의 문제를 생각해보자. 1개에 100원짜리 사과 2개를 구입했다..
4.1 손실함수¶ 신경망 학습은 현재의 상태를 하나의 지표로 표현하며, 해당 지표를 가장 좋게 만들어주는 매개변수 값을 탐색한다. 이러한 지표를 신경망에서는 손실 함수라고 한다. 4.1.1 오차제곱합¶ 가장 많이 사용되는 손실 함수는 오차제곱합(sum of squared error; SSE)이며 식 (1)과 같다. \begin{equation} E = \frac{1}{2}\sum_k (y_k - t_k)^2 \end{equation} 여기서 $y_k$는 신경망으로 추정한 값(출력), $t_k$는 정답 레이블, $k$는 데이터의 차원 수를 나타낸다. 예를 들어, 앞서 MNIST 데이터셋에서 $y_k$는 신경망의 k번째 반복의 출력인 y_prob이며, $t_k$는 정답 레이블 t[k]가 된다. In [1]:..
3.3 다차원 배열의 계산¶3.3.1 다차원 배열¶다차원 배열은 숫자를 N차원으로 나열한 것을 말한다. 1차원 배열의 예를 살펴보자. In [1]: import numpy as np A = np.array([1, 2, 3, 4]) print(A) [1 2 3 4] 배열의 차원 수는 np.ndim() 함수로, 배열의 형상은 shape 메서드로 확인할 수 있다. 결과를 살펴보면 A는 1차원 배열이고 원소 4개로 이루어져 있다. 주의할 점은 A.shape가 튜플(tuple)을 반환한다는 것이다. 이는 1차원 배열이라도 다차원 배열일 때와 통일된 형태로 결과를 반환하기 위함인데, 예를 들어 2차원 배열일 때는 (4, 3), 3차원 배열일 때는 (4, 3, 2)와 같은 튜플을 반환한다. In [2]: print(..
퍼셉트론은 복잡한 함수도 표현할 수 있다는 장점이 있지만, 가중치를 설정을 사람이 직접 해줘야한다는 단점이 있다. 하지만, 신경망은 가중치의 적절한 값을 데이터로부터 학습한다. 이번 장에서는 신경망에 대한 개요를 다루고 신경망이 입력 데이터가 무엇인지 식별하는 처리 과정을 알아본다. 3.1 퍼셉트론에서 신경망으로¶3.1.1 신경망의 예¶신경망을 그림으로 나타내면 다음과 같다. 여기에서 가장 왼쪽을 입력층, 중간을 은닉층, 마지막 층을 출력층이라고 한다. 은닉층의 뉴런은 사람 눈에 보이지 않아 '은닉(hidden)'이라 한다. 앞으로는 입력층부터 출력층까지 차례로 0층, 1층, 2층이라 부르기로 하자. 3.1.2 퍼셉트론 복습¶아래와 같은 구조의 네트워크를 생각해보자. 위 그림은 $x_1$, $x_2$라는..
정밀 의학(Precision medicine) 또는 개인 맞춤 의료(Personalized medicine)란 하나의 치료로 모든 환자를 다루는 게 아닌 환자 개인의 상황에 따라 맞춤진료, 맞춤치료 및 질병 예방 등을 목표로 하는 의료 모델을 말한다. 이때 Subgroup analysis는 정밀 의학(또는 개인 맞춤 의료)의 핵심으로 특성 변수들로 정의된 대상들로부터 측정한 target 변수에 대한 treatment effect를 평가하는 것을 의미한다. 이를 통해 treatment effect가 다른 양상을 보이는 부분 집단(subgroup)을 찾고, subgroup에 대해 target과 특성 변수를 다르게 모델링해줌으로써 보다 정밀한, 혹은 개인 맞춤의 의료 서비스를 제공할 수 있다는 것이다. 다시 ..