분류 전체보기 82

[RL] 가치 기반 에이전트

에이전트 3가지 종류액션을 정하는 기준에 따라 에이전트 3종류를 구분할 수 있음1. 가치 기반 에이전트: 가치함수에 근거하여 액션을 선택 모델 프리 상황에서는 상태 가치함수만으로 액션을 선택할 수 없음. 액션 가치함수를 근거하여 액션을 선택2. 정책 기반 에이전트: 정책함수 π(a∣s)를 보고 액션을 선택 -> 다음 챕터에서 다룸3. 액터-크리틱: 가치함수 + 정책함수 모두 사용, Actor는 행동하는 주체, Critic은 비평가, (즉 상태가치 + 액션가치) ..

[RL] Deep RL 첫 걸음

7.1 함수를 활용한 근사우리가 해온 것들은 데이터 개수가 적은 간단한 경우였다.따라서 테이블 기반 방법론으로 동작해도 문제가 없었다.그러나, 바둑과 체스 등과 같이상태의 경우의 수가 많은 문제에서 테이블 기반 방법론은 적용하기 어렵다.바둑이나 체스처럼 이산적(discrete)인 형식이 아닌 속도와 같이 연속적인 값을 가질 수 있음.함수의 등장테이블 기반 방법론을 사용하지 않고,위 사진의 함수에 저장실제 가치의 근사함수데이터가 많은 경우위 그림과 같이 MSE를 최소로 하는 a, b를 결정함수의 복잡도에 따른 차이1차함수의 경우 데이터 양이 많아지면 데이터를 표현하기에 어려움이 있음1차 함수가 아닌 다항 함수를 사용할 수 있음위 그림에서 고차함수로 갈수록 MSE는 감소하지만 데이터에 노이즈가 석여 있음노이..

[RL] MDP를 모를 때 최적의 정책 찾기

MDP를 모를 때 최적의 정책찾기몬테카를로 컨트롤정책 이터레이션을 그대로 사용할 수 없는 이유정책 이터레이션 리뷰 정책 이터레이션은 정책 평가와 정책 개선 두 단계로 구성 정책 평가: 고정된 정책 𝜋에 대해 각 상태의 가치를 구함 = 반복적 정책 평가 = 밸류 평가 정책 개선: 정책 평가의 결과에 따라 새로운 정책 𝜋'를 생성 = 그리디 정책 생성 반복적 정책 평가와 정책 개선을 진행하면 정책과 가치가 변하지 않는 단계에 도달하게 됨 -> 최적 정책과 최적 가치반복적인 정책 평가를 사용할 수 없음모델 프리 상황에서는 보상함수 r과 전이확률 P를 모르기 때문에위 벨만 기대 방정식 2단계를 사용할 수 없음 정책 개선 단계에서 그리디 정책을 만들 수 없음 지난 주를 통해 각 상태의 가치를 알..

[RL] MDP를 모를 때 밸류 평가하기

몬테카를로 학습 (MC)정확한 수학 수식에 의해 계산/측정 하는 것이 아닌,확률적인 방법에 의해 값을 통계적으로 계산하는 것보상 함수와 전이 확률을 알 때,DP를 사용하여 전체 상태를 한 번씩 모두 실행하며 각 상태의 가치를 업데이트 했음몬테카를로 학습에서는 하나의 에피소드가 끝날 때까지 실행하면서경험을 모으고, 그 경험으로부터 가치 함수를 계산함정확한 결과를 얻기보다는 근사적인 결과를 얻을 경우에 사용몬테카를로 학습의 전제조건단 하나의 전제조건이 필요한데,에이전트가 동작하는 환경에 시작과 끝이 있어야 한다.리니지, 메이플스토리처럼 MMORPG의 경우 엔딩이 없이 쭉 이어지는 게임이지만,디아블로와 같은 게임은 에피소드 단위로 게임이 진행되어 에피소드마다 엔딩이 있다.-> 디아블로는 MC 적용 가능몬테카를..

Swift로 코드 최적화하기

백준/프로그래머스 풀다보면서 얻은 Swift 꿀팁 정리(다른 언어도 포함일 수도 ㅇㅇ) 1. 입력 받을 때 map { Int($0)! } 보다는 map { Int(String($0))! }이 더 빠르다.let input = readLine()!.split(separator: " ").map { Int($0)! }vslet input = readLine()!.split(separator: " ").map { Int(String(($0))! }2. 함수 단위로 코드를 실행하면 컴파일러 최적화 측면에서 더 효율적이다.func solve() -> Int { var N = Int(readLine()!)! var crane = readLine()!.split(separator: " ").map { Int..

[Xcode] 협업 간 pbxproj 충돌 방지하기

학습 목표깃허브 협업 간 pbxproj 파일에 대한 충돌 해결학습 내용pbxproj 파일이란 ?Build Setting(실제 프로젝트의 설정)을 담은 파일프로젝트 내부에서 생성된 파일들을 파일 유형에 따라 reference를 저장하고 있다.pbxproj에 대한 충돌은 위 설정 파일에 대한 reference가 없을 때 발생pbxproj 충돌 해결방법pbxproj 파일을 binary 파일로 취급하게 해야 함프로젝트 최상위 폴더(README.md가 있는 곳)에서 .gitattributes 파일을 만들고 설정해당 코드를 추가*.pbxproj binary merge=union배운 점최상위 폴더에 .gitattributes를 추가하면 해결 가능하다고 하니미리 설정해두는게 좋을 거 같습니당참조 링크[git] Xcod..

iOS/Xcode 2024.05.24

[RL] MDP를 알 때 플래닝

MDP를 알 때 플래닝[RL] MDP를 알 때의 플래닝바닥부터 배우는 강화 학습 | 04. MDP를 알 때의 플래닝그리드 월드 MDP 상황을 예로정책 𝜋가 주어졌을 때, 각 상태의 밸류를 평가하는 Prediction과최적의 정책 함수를 찾는 Control 문제 푸는 방법을 배운다.플래닝 = MDP에 대한 모든 정보를 알 때, 정책 개선 과정본 목차의 내용을 적용하려면- 작은 문제 (상태 집합 S, 액션 집합 A의 크기가 작은 경우)- MDP를 알 때두 가지의 조건을 만족하는 상황일 때만 가능작은 문제이므로 *(테이블 기반 방법론)에 기반함*테이블 기반 방법론: 모든 상태 s 혹은 상태와 액션의 페어 (s,a)에 대한테이블을 만들어 값을 기록해놓고, 그 값을 조금씩 업데이트하는 방식밸류 평가하기 - 반복..

[Swift] final을 사용해야 하는 이유 with Dispatch

학습 목표Dispatch에 대해 알아보기Static Dispatch & Dynamic Dispatch 차이Reference Type | Value Type | Protocol에서의 Dispatch 동작Extension 했을 때의 Dispatch 동작학습 내용본 주제에 대한 개요🧑🏻‍💻 프로젝트에서 final 키워드를 모든 class에 다 붙여 두셨는데 이유가 있나요?🧑🏻‍💼 더이상의 상속을 하지 않겠다는 의미로 final 키워드를 모두 붙여주었습니다!🧑🏻‍💻 그렇다면 final 키워드를 사용함으로써 상속을 막는것 이외에 다른 장점은 무엇이 있을까요?🧑🏻‍💼 ?출처: https://itllbegone.tistory.com/10Dispatch에 대한 개념을 알아야 final을 써야 하는..

iOS/Swift Grammar 2024.05.22

[RL] 벨만 방정식

Bellman Equation(벨만 방정식)이란?반환값과 상태가치함수 리뷰반환값- 타입스텝 t에서 계산한 누적 보상의 합계- 에피소드 하나에 대한 가치를 측정상태 가치 함수- 환경 전체에 대한 가치를 측정- 상태 전이 확률을 같이 고려함MRP 벨만 방정식강화학습에서 프로그래밍으로 가치를 구하기 위해 '벨만 방정식'을 많이 사용수학자 리처드 어니스트 벨만의 이름을 땄음일반적으로 기댓값을 시그마 기호를 사용한 수열의 합으로 표현현재 상태의 가치함수와 다음 상태의 가치함수 관계로 나타냄수식 1 = 개념적인 상태 가치 함수수식 2 = 상수는 기댓값에서 의미 X, 정리함수식 3 = 기댓값을 수열의 합과 다음 상태에서의 상태 가치 함수로 나타낸 것MDP 벨만 기대 방정식0단계벨만 기대 방정식: 현재 상태의 가치 함..

[디버깅 회고] 네트워크 통신 공부 중 발생한 보라색 에러

App Transport Security has blocked a cleartext HTTP connection to (대충 서버주소) since it is insecure. Use HTTPS instead or add this domain to Exception Domains in your Info.plist.위와 같은 에러가 발생했다. 내가 설정해둔 baseURL의 서버 도메인이 HTTPS가 아닌 HTTP였기 때문에 발생한 오류였다.보라색 에러가 뜰 때마다 놀라곤 하는데, 애플에서는 HTTP를 사용을 금하고 있다. (보안이 문제니까 ㅇㅇ) Info.plist에서 'Allow Arbitrary Loads - YES'로 해주면 된다. 애플은 2018년 이후로 HTTP 연결 대신 HTTPS를 통한 보안 연..

iOS/Xcode 2024.05.19