티스토리 뷰

SLAM

[SLAM] 양정연 교수 SLAM 강의 11강. Random Process

무엇보다_빛나는_샤트 2022. 2. 21. 21:14

2021. 9. 29. 21:37

 

안녕하세요

프로그래밍을 배우는 빛나는 샤트입니다. 

 

SLAM 강의 11번째. Random Process


*이 포스팅은 목원대학교 양정연 교수님의 SLAM강의 유튜브 영상을 보고 제작되었음을 밝힙니다.

출처: 11강. Random Process

11강. Random Process

 

🎉강의요약

1. 확률을 대할 때의 사고 방식의 변환이 필요를 강조

2. 이전에 학습한 Gradient Descent Method에서 Stochastic를 적용하는 개념 강조

3. 골짜기에서 Global minimum을 구할 때 지진(랜덤 노이즈)을 적용해 Global minimum을 찾는 방법

 

 

<Random Process>
확률을 어떻게 사용해야 하는 지 학습
2005년 경부터 로봇에 확률 개념이 적용되기 시작됨.

 

<Why Probabilistic Approach is Different?>
생각하는 방식을 전환이 필요.
확률과 강화학습은 특히 생각하는 방식을 많이 전환해야 한다. (Stochastic한 방법)

 

<Iterative Method often OSCILLATE!>
Sinx + 0.5sqrt(x) 그래프를 그렸을 때를 보면 sqrt(x)는 x가 커짐에 따라 커져가고 그 형상에 Sinx 파동 모양이 그려지는 형태이다.
Gradient Descent Method를 이용해서 최솟값을 구하려고 할 때 위 그래프의 접점과 접선처럼 갇혀서 두 구간을 빠져나올 수 없을지도 모른다. 그래서 진동이 발생하게 된다.

 

<Differentitaion-based Method is Too fast to Find a Solution>
알파값이 커지면 불안정, 작으면 안정(하지만 시간이 걸림)
좌측은 알파값이 큰 경우, 우측은 알파값이 작은 경우

 

<How to Avoid Oscillation and how to find global minimum?>
Global minimum을 찾는 방법: 반복
> 하지만 답을 모르는 경우에는 반복을 해야 하는데 구한 값이 Global minimum인지 확신할 수 없다.
> Trial and error을 통해 Global minimum을 찾을 수 있는지 없는지 확신할 수 없다.
> Global minimum을 찾는 것이 최종 목표가 아닌 minimum을 얻어 내는 방법이 중요. Stochastic한 방법에 포함되어 있음.

 

<Random Guess can solve it?>
Random Guess는 오랜 시간이 걸린다. 최적화하는 방법을 사용할 때 좌우로 흔들게 되면 어떻게 될까?
빨간 공이 좌측 상단에서 출발하고 중간에 한 번 걸리게 되는데 지진이 일어나서 흔들리게 되면 우측 사진과 같이 웅덩이에 빠지게 된다. 
> 랜덤 노이즈를 추가해주면 조금 더 해를 수월하게 구할 수도 있다. 아닐 수도 있다. 하나의 방법으로 이해하면 된다.

 

<Differentitaion>
주의) 미분에 노이즈를 섞으면 안 된다. 기울기의 작은 변화에 따라 끝단은 매우 크게 변하기 때문.
> 해를 구하는데 정제된 방법을 사용해서 잘 구해지면 좋을텐데 살짝 흔들어줘서(랜덤 노이즈 추가) 또 다른 minimum을 구할 수 있다. 그러니 미분을 사용하지 않고 이러한 스타일의 최적화 기법을 만들면 어떨까?

<On behalf of Differentitaion, Stochastic Searching is Stable in Every time>
Genetic algorithm: 생명공학적인 관점으로 설명. 우월한 유전자를 가진 개체만이 자손을 만들어내고 열등한 유전자를 가진 개체들은 도태된다. 이러한 과정을 거치다 보면 먼 훗날의 자손 중 하나가 최고인가?(Global minimum?)라는 질문에는 '아니다'. 이러한 방식을 볼 때는 크게 볼 때는 좋은 방향으로 전개가 되는 것은 맞지만 꼭 좋은 방향으로만 진행되지 않을 수도 있다는 점과 돌연변이가 생겨서 더 좋은 쪽 또는 더 안 좋은 쪽으로 진행될 수 있다는 개념.

 

위 수식을 보면,
X=[x1,x2,..]은 입력 인자(다양한 유전인자를 가지고 있는 개체)
F = F(X)는 유전 등급을 판별해주는 함수
Good = sort(F)는 유전 등급에 따라 정렬 (별로 안 좋은 개체는 도태)
- Crossover: 교배
- Mutation: 엉뚱한 개체를 투입(랜덤 개체)
Crossover 90%, Mutation 10% 비율이 가장 이상적

<Genetic Algorithm>
미분을 사용하지 않고 최적화하는 코드

 

피드백은 언제나 환영합니다.😊

틀린 부분 있다면 지적해주시고 도움이 되었다면 댓글 공감 눌러주세요.

LIST
댓글