Alpha(Go) Zero

작년말 Deepmind사는 이세돌구단을 4:1로 이긴 AlphaGo Lee  버전보다도 더욱더 강력한 버전의 인공지능 바둑 알고리즘을 발표하였다. 이 버전은 인간을 능가함은 물론이고 그동안의 다른 AlphaGo 버전보다도 훨씬 더 강력한 버전이었으며, 이 알고리즘은 자신의 활동영역을 바둑에 그치지 않았다. 이 알고리즘을 Alpha Zero라고 하는데, 바둑(Go) 뿐만 아니라 다른 게임에도 알고리즘 수정없이 모두 적용 가능하기 때문에 알고리즘 이름에 Go를 빼고… Alpha(Go) Zero 계속 읽기

Transfer Learning : TensorFlow Hub

Google은  최근 TensorFlow Hub이라는 library를 발표하고, transfer learning이 용이하도록 library를 제공하였다.  기존에 개발된 많은 모델과 dataset을 이용하여 이미 학습된 정보를 모두 포함하고 있는 module을 그대로 차용하여 다른 프로젝트에 활용하는 것이 transfer learning의 핵심 개념이다. 이러한 방법이 없다면, Deep Learning을 통한 application 개발은 많은 데이터와 연산능력을 확보한 조직의 전유물이 될수 밖에 없을 것이다. 다행스럽게 이 모든… Transfer Learning : TensorFlow Hub 계속 읽기

Google Object Detection API

여전히 관심 있는 분야에 대해 시간 나는데로 자료을 읽고 공부하지만 블로그에 올리지 않았다. 사실 시간이 부족한 상황에서 블로그에 글쓰는 시간 조차도 아깝다는 생각이 들기도 하지만… 정리를 한다는 면에서는 블로그에 계속 글을 올리는 것이 좋다는 생각에는 변함이 없다. Google은 작년에 자신들이 개발해 놓은 Object Detection(사물인식) API를 공개했다. 이미지 인식용으로 개발된 수많은  CNN 모델을 쉽게 사용할 수… Google Object Detection API 계속 읽기

Sensors

이미 보아 왔듯이, 설령 로봇이 한 시점에서 주변환경에 대한 정보와 하나의 목표를 가지고 있다고 하더라도 실제 일을 수행하는 문제는 단순하지가 않을 것이다. 그 목표를 달성하기 위해서는 좋은 planning과 action을 수행해야 하기 때문이다. 여기서 더 문제를 어렵게 만드는 요인은 주변환경이 시작한 시점과 동일하지 않을 가능성도 높고, 임무 수행중에 자기 자신의 pose가 계속 변한다는 사실이다. 이러한 변화에… Sensors 계속 읽기

Mobile Robots & ROS

그동안 올렸던  mobile car/robot에 대한 내용을 정리하는 의미에서 이 글을 시작한다. Car 또는 wheeled robot의 움직이는 actuator와 움직이는 공간에서의 좌표와의 관계를 나타내는 kinematics는 로봇의 현재위치에서 새로운 위치로 움직이게 하기위해 자동차의 구동장치를 어떻게 조작해야 하는지에 대한 수학적 관계를 표현해 준다. 새로운 위치로 가는 방법은 다양한 방법이 있겠지만 최적의 path를 평가하는 알고리즘이 도입되어야 하고 주행 도중 우선… Mobile Robots & ROS 계속 읽기

Evolution Strategies

그 동안 Reinforcement Learning과 관련된 글을 많이 올렸고 현재도 관심을 가질 만한 논문이 계속 발표되고 있다. 최근 RL의 대안으로서, 다른 접근방법을 사용하여 RL에 필적할 만한 성능을 보이는 논문이 발표되었기에 이 논문을 소개하고자 한다. Evolution Strategies as a Scalable Alternative to Reinforcement Learning Background RL에서 적절한 action을 규정하는 policy를 구하기 위해서는 value function을 구하는 단계를 거쳐… Evolution Strategies 계속 읽기

EKF SLAM

자료를 조사해 보니 최근 수많은 다양한 종류의 SLAM 기법이 있고 그 성능도 높지만 아직 해결해야 할 문제들이 여전히 상존하는것 같다. 여기서 먼저 소개하려는 EKF(Extended Kalman Filter)는 SLAM 분야 연구에서 매우 중요한 위치를 차지한다. 수학적 기법이며, 비선형 움직임에 대한 예측을 시도한 기법이기 때문이다. 혹시나 하여 첨언하지만, 앞서 소개한 Kalman filter를 사용한 localization과는 다른 이야기다. Localization은 기본적으로… EKF SLAM 계속 읽기

Graph SLAM

초기에 출시된 진공청소 로봇은 사실 무작위로 설정된 방향으로 움직이며 청소를 하는 수준이었으며, 장애물과 같은 것만 피하는 기능을 가진 초보적인 로봇이었다. 그러나, 현재의 주율주행차는 과거의 로봇과 비교 불가능할만큼 높은 수준의 능력을 가지고 있다. 그런 능력향상의 중심에는 주변환경을 주행중에 정확히 mapping하는 능력을 바탕으로 한다. 이처럼 주변환경을 인식하고 입체적으로 주변 물체의 움직임 및 속도까지 동시에 알아 내는 능력은… Graph SLAM 계속 읽기

Car Autonomous Control

지금까지 자동차/로봇의 주행과 관련하여 몇개의 글을 올렸으나, 모두 개별적 주제의 이론적 구현에 관한 기초 개념위주였다. 이 분야에서 아직 다뤄야 할것이 더 있다고 판단된다. 그러나 너무 개별적인 이론에만 치우치는 것보다는 이쯤에서 한번 정리를 할 필요가 있다고 생각된다. 우리가 일반적으로 무선조정 (radio control)에 의해 조작되는 RC car를 생각하고 비교한다면, 주행로봇이 수행하는 일을 보면 훨씬 뒤떨어져 있다고 생각된다.… Car Autonomous Control 계속 읽기

Motion Planning : Dynamic Programming

앞서 소개한 A* method로도 훌륭하지만, 이번 포스팅은 다양한 문제에 범용적으로 사용 가능한 강화학습(Reinforcement Learning)기법인 Dynamic Programming을 사용하여 최적 path을 찾아내는 방법에 대한 글이다. RL을 구현하는데 가장 많이 사용하는 environment중의 하나가 grid world이므로, 최적 path를 찾는 환경이 이와 비슷하고, DP가 motion planning에 적용 가능하다는 것은 알 수 있다. Path search의 경우, DP의 reward개념보다는 cost 개념을 도입한다.… Motion Planning : Dynamic Programming 계속 읽기