Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)

RL Korea에서 주최한 "이쯤되면 RL도 Real world로 나가봐야지!" 행사에서 발표한 "Rainbow의 혈관 속 탐험" 발표자료

  • Login to see the comments

Rainbow의 혈관 속 탐험 (The Rainbow's adventure in the vessel) (RL Korea)

  1. 1. Rainbow의 혈관 속 탐험 김경환
  2. 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. 3. 목차 1. What are we trying to solve? 2. 실험 환경 구성 3. 알고리즘 선정 4. 실험 시행착오 5. 결과
  4. 4. What are we trying to solve ?
  5. 5. About Medipixel AI를 의료에 접목하여 인류의 삶의 질을 높이는 글로벌 헬스테크 기업 ❏ Mission
  6. 6. About Medipixel ❏ Mission → 특히, 심혈관질환의 진단 및 치료를 돕는 솔루션을 연구개발 AI를 의료에 접목하여 인류의 삶의 질을 높이는 글로벌 헬스테크 기업
  7. 7. 심혈관 질환? ❏ 심혈관 질환이란 ● 심장 주변 혈관에 지방질이 쌓여 혈관을 막아 생기는 병 ● 전 세계 사망원인 1위 (약 30%) < 세계 사망 원인 질환 > ref: Global health estimates 2016
  8. 8. 심혈관 질환? ❏ 심혈관 질환이란 < 심장 관상동맥 > ref: 위키백과 ● 관상동맥: 심장에 혈액을 공급하는 동맥
  9. 9. 심혈관 질환? ❏ 심혈관 질환이란 정상 관상동맥 일부 막힘 완전히 막힘 ref: 서울아산병원 메디컬칼럼, 아스피린프로텍트 심혈관질환의 종류 < 협심증 > < 심근경색 > ● 산소 공급 부진 ● 가슴 통증, 압박감 ● 심장 근육 사망 ● 돌연사
  10. 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. 11. 심혈관 중재 시술 (PCI) ref: 강남세브란스병원 관상동맹 조영술 및 혈관 확장술 ❏ 시술 X-ray 이미지
  12. 12. 심혈관 중재 시술 자동화 ❏ PCI 시술 자동화의 필요성 ● 전체 시술 시간동안 X-ray 영상 ● 의료진 건강에 큰 부담 ● 숙련도에 따른 큰 차이 ● 도구를 많이 교체해야함 (고가의 시술도구) ● 약 1시간 ● 완전폐쇄병변 등 어려운 시술의 경우 그 이상
  13. 13. 로봇과 심혈관 중재 시술 ❏ 로봇을 이용한 시술의 예 ref: https://www.corindus.com/ ● Corindus: 원격 로봇 조작을 통한 심혈관 중재 시술
  14. 14. 로봇과 심혈관 중재 시술 < 기존 수기 시술 > < Manipulator > < Rotate > < Translation > < Rotate > < Translation > ref: 아산병원
  15. 15. Medipixel과 심혈관 중재 시술 가이딩카테터 선 정 가이드와이어 삽입 스텐트 배치 시술 종료 카테터 CDSS 스텐트 선정 스텐트 CDSS 와이어 네비게이션 스텐트 네비게이션 가이딩카테터 삽입 카테터 네비게이션 카테터 탐지/분할 와이어 탐지/분할 스텐트 탐지/분할 CAG + CT 정합 ECG 패턴 추출 진단 주혈관 분할 병변 검출/표시 병변 지수 산출 시술 시작시술 준비 와이어 로드맵 진단 시술도구 추천 시술 가이드 & 시술 자동화 ❏ 시술 절차와 필요 기술
  16. 16. 가이딩카테터 선 정 가이드와이어 삽입 스텐트 배치 시술 종료 카테터 CDSS 스텐트 선정 스텐트 CDSS 와이어 네비게이션 스텐트 네비게이션 가이딩카테터 삽입 카테터 네비게이션 카테터 탐지/분할 와이어 탐지/분할 스텐트 탐지/분할 CAG + CT 정합 ECG 패턴 추출 진단 주혈관 분할 병변 검출/표시 병변 지수 산출 시술 시작시술 준비 와이어 로드맵 진단 시술도구 추천 시술 가이드 & 시술 자동화 Medipixel과 심혈관 중재 시술 ❏ 시술 절차와 필요 기술
  17. 17. 가이드와이어 제어 로봇을 이용해 가이드와이어를 병변부위까지 자동으로 이동시키자 ! ❏ 목표
  18. 18. 가이드와이어 제어 로봇을 이용해 가이드와이어를 병변부위까지 자동으로 이동시키자 ! ❏ 목표 → How ?
  19. 19. 와이어 제어의 어려움 ❏ 가이드와이어의 특성 ● Flexible ○ 와이어가 휘어져있는 형태를 제대로 파악하기 어려움 ● Friction ○ 와이어를 카테터라는 관을 통해 이동시킴 ○ 측정 불가능한 마찰이 발생
  20. 20. 와이어 제어의 어려움 ❏ 가이드와이어의 특성 ● Flexible ○ 와이어가 휘어져있는 형태를 제대로 파악하기 어려움 ● Friction ○ 와이어를 카테터라는 관을 통해 이동시킴 ○ 측정 불가능한 마찰이 발생 모델링이 불가능 → 기존 제어 방법으로 풀기 어려움
  21. 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 문제를 ○ 강화학습으로 해결한 사례가 존재
  22. 22. 가이드와이어 제어 가이드와이어를 병변부위까지 이동시키는 강화학습 Agent를 만들자 ! ❏ 목표
  23. 23. 실험 환경 구성
  24. 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. 25. 실제 시술 환경 ❏ 의사의 시술 과정 ref: https://commons.wikimedia.org/wiki/File:Wellens%27_Warning.gif < 조영제 투입 >
  26. 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. 27. 실험 환경 구상 ❏ 실험 도구 ● Manipulator (아산병원) ● 의료 도구: 카테터, 가이드와이어 ● 2D 혈관 모형 ● 카메라 ● 실험실 (암실)
  28. 28. 실험 환경 구상 ❏ 2D 혈관 모형 카테터 가이드와이어 ref: 위키백과
  29. 29. 실험 환경 구상 ❏ 실험실과 실험 환경 예상도
  30. 30. 실험 환경 구상 ❏ 내부 환경 세팅
  31. 31. 실험 환경 구상 ❏ 강화학습 실험 사이클 카메라 RGB 이미지 Agent 가이드와이어 이동 Manipulator Control 실험 환경
  32. 32. 알고리즘 선정
  33. 33. 알고리즘 ❏ Research OpenAI: Dexterous Hand Imperial College: Deformable Object Manipulation UC Berkeley: Walking Minitaur Robot ref: OpenAI Dexture Hand: https://arxiv.org/abs/1808.00177 Imperial College Deformable Object Manipulation: https://arxiv.org/abs/1806.07851 UC Berkeley Walking Minitaur Robot: https://arxiv.org/pdf/1812.11103
  34. 34. 알고리즘 ❏ Research OpenAI: Dexterous Hand Imperial College: Deformable Object Manipulation UC Berkeley: Walking Minitaur Robot ref: OpenAI Dexture Hand: https://arxiv.org/abs/1808.00177 Imperial College Deformable Object Manipulation: https://arxiv.org/abs/1806.07851 UC Berkeley Walking Minitaur Robot: https://arxiv.org/pdf/1812.11103 → PPO → DDPG → SAC
  35. 35. 알고리즘 ❏ Research ● Manipulator → 주로 Continuous action space ● Continuous action → Policy gradient method ● Simulator 없음 ○ sim2real 불가능 ○ 분산 처리 불가능 → On-policy 보단 Off-policy
  36. 36. 알고리즘 ❏ Research DDPG TD3 SAC Main algorithms Sub algorithms ● from Demonstration ● HER ● Behavior cloning
  37. 37. 알고리즘 ❏ Research DDPG TD3 SAC Main algorithms Sub algorithms ● from Demonstration ● HER ● Behavior cloning But...
  38. 38. 알고리즘 ❏ 생각과 달랐던 부분 ● HW의 동작: 한 번에 한 가지 action만 입력 가능 ○ Continuous action은 보통 동시 입력 ■ ex. [전진, 후진, 회전] => [0.23, 0.34, 0.5] ● 데모 생성 위한 I/O가 keyboard 입력 ○ keyboard 입력으로 continuous action을 어떻게 재현할까?
  39. 39. 알고리즘 ❏ 생각의 전환 ● 동시 action이 없다면 굳이 넓은 continuous space로 해야할까? ● Discrete action이라면 ○ keyboard 입력으로도 쉽게 데모를 만들 수 있지 않나?
  40. 40. 알고리즘 ❏ 생각의 전환 Discrete action space로 가보자 ! ● 동시 action이 없다면 굳이 넓은 continuous space로 해야할까? ● Discrete action이라면 ○ keyboard 입력으로도 쉽게 데모를 만들 수 있지 않나?
  41. 41. 알고리즘 ❏ Research SAC Main algorithms Sub algorithms ● from Demonstration ● HER ● Behavior cloningDQN Rainbow
  42. 42. 알고리즘 ❏ Research SAC Main algorithms Sub algorithms ● from Demonstration ● HER ● Behavior cloningDQN Rainbow
  43. 43. 알고리즘 구현 ❏ Module을 직접 구현하기로 결정 ● Customize가 용이한 모듈이 필요 ● 필요한 algorithm들이 통합적으로, 사용하기 쉽게 구현된 모듈이 없었음 ○ rl-kit, Dopamine, … ● 기존 모듈에 적응하는 것보다 직접 구현하는게 더 빠르다고 판단
  44. 44. 알고리즘 구현 ❏ Module을 직접 구현하기로 결정 ● Customize가 용이한 모듈이 필요 ● 필요한 algorithm들이 통합적으로, 사용하기 쉽게 구현된 모듈이 없었음 ○ rl-kit, Dopamine, … ● 기존 모듈에 적응하는 것보다 직접 구현하는게 더 빠르다고 판단 https://github.com/medipixel/rl_algorithms
  45. 45. 알고리즘 Test ❏ LunarLander-v2 < LunarLander with RainbowDQN >
  46. 46. 실험 시행착오
  47. 47. 목표 ❏ 2D 혈관 모형 실험의 목표 ● 카테터 입구부터 시작하여 ● 분지 1 (proximal) 을 통과 후 ● 분지 2 (distal) 도 통과하여 ● 지정된 최종 goal 도착 ● goal은 양쪽 중 하나만 지정 분지 1 분지 2
  48. 48. Proximal case
  49. 49. 초기 State ❏ Resize & gray scale 640 x 480 x 3 150 x 150 x 1 resize gray scale
  50. 50. 초기 State State로 또 어떤 정보를 줄 수 있을까?
  51. 51. 초기 State ❏ Pathmap 150 x 150 x 1
  52. 52. 초기 State ❏ Tip crop mask image 640 x 480 x 3 40 x 40 x 1
  53. 53. 초기 State ❏ Pathmap + Tip crop mask image resize 150 x 150 x 3 CNN 40 x 40 x 1
  54. 54. 초기 State Image 이외에 다른 state도 함께 넣어주면 잘하지 않을까? ( fully observable state )
  55. 55. 초기 State ❏ Extra state ● 현재 tip position (x, y) ● episode goal position (x, y) ● tip angle ● manipulator rotate 값
  56. 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. 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. 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. 59. Proximal case 결과 ❏ Bad ... ● Memory 문제 ○ 150 x 150 x 3 의 state를 replay buffer(100,000) 저장하려면 ○ 60GB 이상의 메모리가 필요 ● pathmap과 tip image의 효과가 미비함 ○ sparse image 문제 ■ tip image의 경우 이미지 크기에 비해 값을 갖는 pixel이 적음
  60. 60. State 개편 step 0 step 1 step 2 ❏ 기존 state의 문제
  61. 61. State 개편 step 0 step 1 step 2 ❏ 기존 state의 문제 action에 의해 바뀌는 state가 전체 image에 비해 매우 적은 부분을 차지
  62. 62. State 개편 ❏ 기존 state의 문제 ● Tip 기준으로 crop한 이미지를 state로 쓰면 어떨까?
  63. 63. State 개편 ❏ 기존 state의 문제 ● Tip 기준으로 crop한 이미지를 state로 쓰면 어떨까? ○ 슈퍼마리오 같은 게임도 캐릭터 기준으로 화면이 이동됨 ● 기존에 사용하던 tip crop mask image가 필요 없게됨 ● image 사이즈로 인한 메모리 문제도 해결 ● agent의 action에 따른 state의 변화가 분명해짐
  64. 64. State 개편 ❏ Crop state image 전처리 ● state image에서 path부분을 더 선명하기 위해 전처리함 ● 이전에 만든 pathmap을 overlay ● sharpening 처리 전처리 전 전처리 후
  65. 65. State 개편 ❏ Goal position 마킹 ● goal에 대한 정보도 image state에 직접 넣어주도록 변경 ● agent가 action에 따라 goal에 점점 가까워지는 것을 확인할 수 있도록 함 UI 상의 goal Agent가 보는 goal
  66. 66. Action 개편 ❏ Action 변경 ● 기존 action: [Forward, Backward, CW Rotate, CCW Rotate] ● HW 설계상 회전의 한계값이 존재 → 한계일 때 같은 action을 주면 동작 불가 ❏ 해결 ● 가이드와이어의 회전은 회전의 방향에 크게 영향을 받지 않음 ● Rotate를 통합 → 한계일 때 반대 방향으로 Rotate하도록 환경 변경 ● Agent 입장에서는 action은 줄어들고 stuck 문제는 해결됨
  67. 67. Proximal case 재실험 ❏ State ● crop image: 84 x 84 x 4 ○ extra state는 자연스럽게 삭제 ○ 추가적인 정보를 위해 frame stacking 사용 ❏ Action ● action size: 3 ● Forward, Backward, Rotate
  68. 68. Proximal case 결과 ❏ 성공 ! https://youtu.be/crp-fxGbdb4
  69. 69. Distal case
  70. 70. Distal case 실험 ❏ Bad ...
  71. 71. state의 문제 ❏ goal까지의 거리가 멀어짐 ● 다수의 state에서 goal이 보이지 않음 ● agent가 action에 따라 goal에 점점 가까워지는 것을 확인할 수 없게 됨 ➢ 시작 지점과 goal이 멀리 떨어져 있음 ➢ crop 했을 때 goal 안보임
  72. 72. Subgoal 도입 ❏ 팩맨
  73. 73. Subgoal 도입 ❏ 팩맨: Subgoal 추가 ● 시작과 goal 사이에 subgoal을 추가 ● reward는 goal과 동일하게 함 ● subgoal은 와이어 tip 끝과 만나면 사라짐 ● state에 적어도 한 개의 subgoal이 보이도록 간격 조절
  74. 74. tip이 접히는 문제 ❏ Tip folding ● exploration 중 와이어가 잘못 끼어 접히는 문제 발생 ● 와이어의 강한 손상 유발 ● 최악의 경우 자력으로 회복 불가 tip folding 현상 회복하지 못한 모습
  75. 75. Tip stuck 문제 ❏ Tip stuck ● 학습 도중 goal이 아닌 잘못된 분지로 들어가는 경우 ● exploration으로 회복하지 못하고 stuck된 상태로 episode가 종료됨 ● 학습 속도를 느리게 하는 주 원인
  76. 76. Heuristic backward action ❏ Tip folding & Tip stuck 문제 발생시 ● Agent가 일정 step 동안 backward action을 하도록 구현 ○ exploration으로 회복하기 어려운 부분을 ○ heuristic algorithm으로 도와줌 ● 어디까지 backward? → 바로 직전 subgoal까지 stuck restoringtip folding restoring
  77. 77. Distal case 재실험 결과 ❏ 성공 ! Success!
  78. 78. 결과
  79. 79. 결과 https://youtu.be/wIDE0NGT9oM
  80. 80. 결과 ❏ 정리 ● Agent의 action에 따라 변화가 잘 나타나도록 state 설계 ○ image state에 학습에 필요한 정보를 표시해 주자! ■ goal position, wrong terminal position, ... ● Agent 학습시 heuristic method가 도와주면 훨씬 빠르게 학습 ○ “알아서 잘 학습하겠지” 하고 기대하지 말자! ● 환경을 게임에 대입해 설계 ○ 강화학습의 주 실험 환경은 게임 ○ action과 reward로 구성된 환경은 게임에서 연상하기 쉽다
  81. 81. Ongoing works ❏ TCT 학회 발표 예정
  82. 82. Ongoing works ❏ Scientific Reports 논문 준비 중
  83. 83. Future works ❏ 3D 혈관 모형 실험 준비 중 ● X-ray 영상에서 2D 실험에서와 같은 state를 만들기 위한 이미지 처리
  84. 84. Q&A
  85. 85. 감사합니다
  86. 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. 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.

×