ML

    합성곱 신경망

    1. Fully connected layer vs Convolutional layer 1-1.Fully connected layer? 3차원 이미지를 1차원으로 펼쳐서 하나의 가중치 row에 대해서 모든 픽셀의 값을 내적(dot)한 값들의 집합으로 이미지 전체에 대해 학습한다. 1-2. Convolutional layer 하나의 output이 이미지 전체가 아닌 일정 구역에 대한 내적값이기 때문에, fully connected layer와 다르게 이미지의 공간적 구조 및 정보를 유지하며 전파한다. (local connectivity) 3차원 필터가 3차원 이미지를 순회하면서(slide) 내적한다. 이때 필터의 깊이(depth)는 반드시 input의 depth와 같아야 한다. 이렇게 필터가 순회하면서 내적..

    역전파와 신경 네트워크

    0. Gradient descent 이전에 Gradient descent가 어떤 의미를 갖는지 알아봤었다. 리마인드 해보자면, 다음과 같은 scores funcion이 있을 때 각 데이터 별로 실제 scores와 예측 scores를 이용하여 Loss(손실)를 계산하고, 모든 데이터에 대해 더했다. 이와 같이 하나의 스칼라로 나타나진 Loss라는 기준을 바탕으로, 이 값을 최소화 하는 방향으로 W를 업데이트 하기 위해서 우리는 Loss를 W에 대해서 미분한 값을 구하는 것이다. 이렇게 미분값을 구하고, W를 갱신하는 것을 iterative하게 함으로써 우리는 최적의 값으로 도달할 수 있다. Gradient descent에서 가장 중요한 것은 어떻게 L을 w에 대해 미분한 값을 얻느냐 인데, 이 방식에는 직..

    ML-Agent 학습 환경 디자인

    https://github.com/Unity-Technologies/ml-agents/blob/release_12_docs/docs/Learning-Environment-Design-Agents.md#multiple-visual-observations Unity-Technologies/ml-agents Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents development by creating an account on GitHub. github.com 이 사이트를 바탕으로 ml-agents 환경 정의 (특히 visual observation에 관하여) 부분을 서술해보고자 한다. Overriding the Ag..

    ML Agent의 강화학습을 활용한 Unity AI학습

    1. 강화학습의 기본 흐름 환경을 관찰하고, 그 환경을 바탕으로 결정을 하고, 그 결정을 바탕으로 행동을 한다. 취해진 행동으로 인해 변경된 상태는 보상과 새로운 환경을 갖는다. 이 새로운 환경을 관찰하는 것으로 다시 돌아와 이 과정을 반복하게 되는데 결과적으로 agent는 reward를 극대화 하는 방향으로 action을 취하도록 학습하게 될 것이다. 이 각 단계들을 어떻게 구현할까? 우선 이 모든것을 하는 주체인 Agent를 정의해주어야 한다. 2. Agent 정의 Unity.MLAgetns를 import한다음, 여기에 포함된 커스텀 Agent class를 정의해야한다. 여기서 Agent란 행동을 하는 객체이다 Agent라고 class를 정의하고 visual studio의 see definition을..

    DQN의 입력

    나는 큰 오해를 하고 있었다. 아타리, OpenGym등 오픈소스를 보면서 DQN의 Input이 image로 한정되고, 효율이 가장 좋다고. 하지만 몇 가지의 예시를 보면서 그것이 아니라는 것을 알게 되었다. DQN은 이미지나 음성같이 raw data만을 input으로써 받는것이 아니고 자유롭게 설정할 수 있다(학습에 필요한 데이터가 충분히 주어진다면) 그리고 DQN 알고리즘은 Neural Network Architecture과 분리 다른 존재로 봐야한다. DQN이 아무 Neural Network Architecture의 구조를 사용해도 되는것은 맞지만 일반적으로 사용되는 것은 Convolutional layers를 시작 layers로 한 구조이고 그 구조가 이미지 기반 입력에 적합한 것 뿐이다. 사용하지..