2. 발표자 소개
김경환 Kim Kyunghwan
kh.kim@medipixel.io / khsyee@gmail.com
AI Research Engineer at Medipixel
Contributor at ModuLabs
RL Lecturer at {Multicampus, LG, ...}
Hansung University
(Majored in Electronic Information Engineering)
Interests : AI, Reinforcement Learning, (Playing games!)
3. 목차
1. What are we trying to solve?
2. 실험 환경 구성
3. 알고리즘 선정
4. 실험 시행착오
5. 결과
7. 심혈관 질환?
❏ 심혈관 질환이란
● 심장 주변 혈관에 지방질이 쌓여 혈관을 막아 생기는 병
● 전 세계 사망원인 1위 (약 30%)
< 세계 사망 원인 질환 > ref: Global health estimates 2016
8. 심혈관 질환?
❏ 심혈관 질환이란
< 심장 관상동맥 > ref: 위키백과
● 관상동맥: 심장에 혈액을 공급하는 동맥
9. 심혈관 질환?
❏ 심혈관 질환이란
정상 관상동맥
일부 막힘
완전히 막힘
ref: 서울아산병원 메디컬칼럼, 아스피린프로텍트 심혈관질환의 종류
< 협심증 >
< 심근경색 >
● 산소 공급 부진
● 가슴 통증, 압박감
● 심장 근육 사망
● 돌연사
10. 심혈관 중재 시술 (PCI)
ref: http://www.secondscount.org/image.axd?id=c8a00122-bb66-46c6-8ab7-333a9a0cd46a&t=635566481777430000
https://www.mcvs.co.nz/wp-content/uploads/2017/05/stent-balloon-angioplasty.png
❏ 시술 방법
● 허벅지 위쪽 또는 팔의 혈관을 통해 와이어를 넣어 심혈관 병변부위에 접근
● 벌룬으로 막힌 혈관 부분을 뚫고, 스텐트로 고정
11. 심혈관 중재 시술 (PCI)
ref: 강남세브란스병원 관상동맹 조영술 및 혈관 확장술
❏ 시술 X-ray 이미지
12. 심혈관 중재 시술 자동화
❏ PCI 시술 자동화의 필요성
● 전체 시술 시간동안 X-ray 영상
● 의료진 건강에 큰 부담
● 숙련도에 따른 큰 차이
● 도구를 많이 교체해야함 (고가의 시술도구)
● 약 1시간
● 완전폐쇄병변 등 어려운 시술의 경우 그 이상
13. 로봇과 심혈관 중재 시술
❏ 로봇을 이용한 시술의 예
ref: https://www.corindus.com/
● Corindus: 원격 로봇 조작을 통한 심혈관 중재 시술
19. 와이어 제어의 어려움
❏ 가이드와이어의 특성
● Flexible
○ 와이어가 휘어져있는 형태를 제대로 파악하기 어려움
● Friction
○ 와이어를 카테터라는 관을 통해 이동시킴
○ 측정 불가능한 마찰이 발생
20. 와이어 제어의 어려움
❏ 가이드와이어의 특성
● Flexible
○ 와이어가 휘어져있는 형태를 제대로 파악하기 어려움
● Friction
○ 와이어를 카테터라는 관을 통해 이동시킴
○ 측정 불가능한 마찰이 발생
모델링이 불가능 → 기존 제어 방법으로 풀기 어려움
21. 와이어 제어의 어려움
❏ 강화학습으로 접근
ref: OpenAI Dexture Hand: https://arxiv.org/abs/1808.00177
Imperial College Deformable Object Manipulation: https://arxiv.org/abs/1806.07851
● 강화학습으로 로봇제어하는 사례가 많음
● 특히, 비슷한 문제인 Deformable Object Manipulation 문제를
○ 강화학습으로 해결한 사례가 존재
24. 실제 시술 환경
❏ 의사의 시술 과정
ref: https://www.researchgate.net/figure/CAG-images-of-the-first-PCI-a-Coronary-stenosis-in-the-proximal-mid-portion-of-LAD_fig1_316498381
< 조영제 투입 > < 조영제 투입 X >
25. 실제 시술 환경
❏ 의사의 시술 과정
ref: https://commons.wikimedia.org/wiki/File:Wellens%27_Warning.gif
< 조영제 투입 >
26. 실제 시술 환경
❏ 의사의 시술 사이클
ref: https://www.researchgate.net/figure/CAG-images-of-the-first-PCI-a-Coronary-stenosis-in-the-proximal-mid-portion-of-LAD_fig1_316498381
X-ray 이미지
시술자
가이드와이어 이동
환자 및 시술 장비
27. 실험 환경 구상
❏ 실험 도구
● Manipulator (아산병원)
● 의료 도구: 카테터, 가이드와이어
● 2D 혈관 모형
● 카메라
● 실험실 (암실)
38. 알고리즘
❏ 생각과 달랐던 부분
● HW의 동작: 한 번에 한 가지 action만 입력 가능
○ Continuous action은 보통 동시 입력
■ ex. [전진, 후진, 회전] => [0.23, 0.34, 0.5]
● 데모 생성 위한 I/O가 keyboard 입력
○ keyboard 입력으로 continuous action을 어떻게 재현할까?
39. 알고리즘
❏ 생각의 전환
● 동시 action이 없다면 굳이 넓은 continuous space로 해야할까?
● Discrete action이라면
○ keyboard 입력으로도 쉽게 데모를 만들 수 있지 않나?
40. 알고리즘
❏ 생각의 전환
Discrete action space로 가보자 !
● 동시 action이 없다면 굳이 넓은 continuous space로 해야할까?
● Discrete action이라면
○ keyboard 입력으로도 쉽게 데모를 만들 수 있지 않나?
43. 알고리즘 구현
❏ Module을 직접 구현하기로 결정
● Customize가 용이한 모듈이 필요
● 필요한 algorithm들이 통합적으로, 사용하기 쉽게 구현된 모듈이 없었음
○ rl-kit, Dopamine, …
● 기존 모듈에 적응하는 것보다 직접 구현하는게 더 빠르다고 판단
44. 알고리즘 구현
❏ Module을 직접 구현하기로 결정
● Customize가 용이한 모듈이 필요
● 필요한 algorithm들이 통합적으로, 사용하기 쉽게 구현된 모듈이 없었음
○ rl-kit, Dopamine, …
● 기존 모듈에 적응하는 것보다 직접 구현하는게 더 빠르다고 판단
https://github.com/medipixel/rl_algorithms
52. 초기 State
❏ Tip crop mask image
640 x 480 x 3 40 x 40 x 1
53. 초기 State
❏ Pathmap + Tip crop mask image
resize
150 x 150 x 3
CNN
40 x 40 x 1
54. 초기 State
Image 이외에 다른 state도 함께 넣어주면 잘하지 않을까?
( fully observable state )
55. 초기 State
❏ Extra state
● 현재 tip position (x, y)
● episode goal position (x, y)
● tip angle
● manipulator rotate 값
56. 초기 State
❏ extra state 추가
CNN
+concat FC Layer Q-value
- 현재 tip position (x, y)
- episode goal position (x, y)
- tip angle
- manipulator rotate 값
14400
6
57. Proximal case 실험
❏ State
● image state: 150 x 150 x 3
● extra state: 6
❏ Action
● action size: 4
● Forward, Backward, CW Rotate, CCW Rotate
58. Proximal case 실험
❏ Reward
● 매 step: -0.001
● goal 도달: 0
● wrong terminal 도달: -0.5
● [-1, 0] 범위를 갖도록 설계
❏ Demonstration
● 20 episode
● 약 1,600 steps transition
● pre-train 1,000 step
❏ Episode
● 1 Episode 당 500 steps
59. Proximal case 결과
❏ Bad ...
● Memory 문제
○ 150 x 150 x 3 의 state를 replay buffer(100,000) 저장하려면
○ 60GB 이상의 메모리가 필요
● pathmap과 tip image의 효과가 미비함
○ sparse image 문제
■ tip image의 경우 이미지 크기에 비해 값을 갖는 pixel이 적음
61. State 개편
step 0 step 1 step 2
❏ 기존 state의 문제
action에 의해 바뀌는 state가 전체 image에 비해 매우 적은 부분을 차지
62. State 개편
❏ 기존 state의 문제
● Tip 기준으로 crop한 이미지를 state로 쓰면 어떨까?
63. State 개편
❏ 기존 state의 문제
● Tip 기준으로 crop한 이미지를 state로 쓰면 어떨까?
○ 슈퍼마리오 같은 게임도 캐릭터 기준으로 화면이 이동됨
● 기존에 사용하던 tip crop mask image가 필요 없게됨
● image 사이즈로 인한 메모리 문제도 해결
● agent의 action에 따른 state의 변화가 분명해짐
64. State 개편
❏ Crop state image 전처리
● state image에서 path부분을 더 선명하기 위해 전처리함
● 이전에 만든 pathmap을 overlay
● sharpening 처리
전처리 전 전처리 후
65. State 개편
❏ Goal position 마킹
● goal에 대한 정보도 image state에 직접 넣어주도록 변경
● agent가 action에 따라 goal에 점점 가까워지는 것을 확인할 수 있도록 함
UI 상의 goal Agent가 보는 goal
66. Action 개편
❏ Action 변경
● 기존 action: [Forward, Backward, CW Rotate, CCW Rotate]
● HW 설계상 회전의 한계값이 존재 → 한계일 때 같은 action을 주면 동작 불가
❏ 해결
● 가이드와이어의 회전은 회전의 방향에 크게 영향을 받지 않음
● Rotate를 통합 → 한계일 때 반대 방향으로 Rotate하도록 환경 변경
● Agent 입장에서는 action은 줄어들고 stuck 문제는 해결됨
67. Proximal case 재실험
❏ State
● crop image: 84 x 84 x 4
○ extra state는 자연스럽게 삭제
○ 추가적인 정보를 위해 frame stacking 사용
❏ Action
● action size: 3
● Forward, Backward, Rotate
71. state의 문제
❏ goal까지의 거리가 멀어짐
● 다수의 state에서 goal이 보이지 않음
● agent가 action에 따라 goal에 점점 가까워지는 것을 확인할 수 없게 됨
➢ 시작 지점과 goal이 멀리 떨어져 있음
➢ crop 했을 때 goal 안보임
73. Subgoal 도입
❏ 팩맨: Subgoal 추가
● 시작과 goal 사이에 subgoal을 추가
● reward는 goal과 동일하게 함
● subgoal은 와이어 tip 끝과 만나면 사라짐
● state에 적어도 한 개의 subgoal이 보이도록 간격 조절
74. tip이 접히는 문제
❏ Tip folding
● exploration 중 와이어가 잘못 끼어 접히는 문제 발생
● 와이어의 강한 손상 유발
● 최악의 경우 자력으로 회복 불가
tip folding 현상 회복하지 못한 모습
75. Tip stuck 문제
❏ Tip stuck
● 학습 도중 goal이 아닌 잘못된 분지로 들어가는 경우
● exploration으로 회복하지 못하고 stuck된 상태로 episode가 종료됨
● 학습 속도를 느리게 하는 주 원인
76. Heuristic backward action
❏ Tip folding & Tip stuck 문제 발생시
● Agent가 일정 step 동안 backward action을 하도록 구현
○ exploration으로 회복하기 어려운 부분을
○ heuristic algorithm으로 도와줌
● 어디까지 backward? → 바로 직전 subgoal까지
stuck restoringtip folding restoring
80. 결과
❏ 정리
● Agent의 action에 따라 변화가 잘 나타나도록 state 설계
○ image state에 학습에 필요한 정보를 표시해 주자!
■ goal position, wrong terminal position, ...
● Agent 학습시 heuristic method가 도와주면 훨씬 빠르게 학습
○ “알아서 잘 학습하겠지” 하고 기대하지 말자!
● 환경을 게임에 대입해 설계
○ 강화학습의 주 실험 환경은 게임
○ action과 reward로 구성된 환경은 게임에서 연상하기 쉽다
86. Reference
● Sutton, R. and Barto, A., Reinforcement Learning: An Introduction,2nd ed., MIT Press, 2018.
● D. Silver et al.,. “Deterministic policy gradient algorithms.” In ICML, 2014.
● T. Lillicrap et al., “Continuous control with deep reinforcement learning.” arXiv preprint arXiv:1509.02971, 2015.
● M. Vecerık et al., “Leveraging Demonstrations for Deep Reinforcement Learning on Robotics Problems with Sparse Rewards.” CoRR, 2017.
● J. Schulman et al., “Proximal policy optimization algorithms.” arXiv preprint arXiv:1707.06347, 2017.
● M. Andrychowicz et al., “ Hindsight Experience Replay.” Neural Information Processing Systems Conference, 2017.
● A. Nair et al., “Overcoming Exploration in Reinforcement Learning with Demonstrations.” International Conference on Robotics and
Automation, 2017.
● Scott Fujimoto et al., “Addressing function approximation error in actor-critic methods.” arXiv preprint arXiv:1802.09477, 2018.
● Haarnoja et al., “Soft actor-critic: Off-policy maximum entropy deep reinforcement learning with a stochastic actor.” arXiv preprint
arXiv:1801.01290, 2018.
● J. Matas et al., “Sim-to-real reinforcement learning for deformable object manipulation.” CoRL, 2018.
87. Reference
● V. Mnih et al., "Human-level control through deep reinforcement learning." Nature, 518 (7540):529–533, 2015.
● van Hasselt et al., "Deep Reinforcement Learning with Double Q-learning." arXiv preprint arXiv:1509.06461, 2015.
● T. Schaul et al., "Prioritized Experience Replay." arXiv preprint arXiv:1511.05952, 2015.
● Z. Wang et al., "Dueling Network Architectures for Deep Reinforcement Learning." arXiv preprint arXiv:1511.06581, 2015.
● M. Fortunato et al., "Noisy Networks for Exploration." arXiv preprint arXiv:1706.10295, 2017.
● M. G. Bellemare et al., "A Distributional Perspective on Reinforcement Learning." arXiv preprint arXiv:1707.06887, 2017.
● M. Hessel et al., "Rainbow: Combining Improvements in Deep Reinforcement Learning." arXiv preprint arXiv:1710.02298, 2017.
● T. Hester et al., "Deep Q-learning from Demonstrations." arXiv preprint arXiv:1704.03732, 2017.