머신 러닝 및 신경망 - 페이지 41

 

3시간 안에 강화 학습 | Python을 사용한 전체 과정

코드: https://github.com/nicknochnack/ReinforcementLearningCourse



3시간 안에 강화 학습 | Python을 사용한 전체 과정

00:00:00 - 01:00:00 "Reinforcement Learning in 3 Hours" 비디오 과정은 실제 구현 및 이론-실습 격차 해소를 포함하여 강화 학습의 다양한 주제를 다룹니다. 이 과정은 RL 환경 설정에서 맞춤형 환경 구축에 이르기까지 모든 것을 다루며, 강화 학습 에이전트를 교육하고 다양한 알고리즘과 아키텍처를 사용하여 이를 평가하는 데 중점을 둡니다. 로보틱스 및 게임과 같은 인기 있는 RL 응용 프로그램뿐만 아니라 환경이 마코비안적이라는 가정과 불안정한 교육의 가능성과 같은 RL의 한계에 대해 논의합니다. 이 과정은 오픈 소스 RL 라이브러리인 Stable Baselines와 OpenAI Gym을 사용하여 시뮬레이션 환경을 구축합니다. 강사는 A2C 및 PPO와 같은 다양한 RL 알고리즘뿐만 아니라 에이전트가 환경에서 취할 수 있는 작업 및 값을 나타내는 데 사용되는 다양한 유형의 공간을 설명합니다. 알고리즘을 구현하기 전에 환경을 이해하는 것의 중요성을 강조하고 강화 학습을 위한 컴퓨팅 플랫폼 설정, 적절한 RL 알고리즘 선택, 모델 교육 및 테스트를 통해 사용자를 안내합니다.

01:00:00
- 02:00:00 이 YouTube 동영상은 Python을 사용한 강화 학습에 대한 3시간 과정을 제공합니다. 강사는 에이전트, 환경, 행동 및 보상을 포함하여 강화 학습의 핵심 구성 요소를 설명합니다. 이 섹션에서는 환경을 정의하고, 강화 학습을 사용하여 모델을 훈련하고, 훈련 프로세스를 모니터링하기 위해 TensorBoard를 사용하여 훈련 로그를 보는 방법에 대해 설명합니다. 강사는 훈련된 모델 저장 및 다시 로드, 모델 성능 테스트 및 개선, 신경망에서 사용자 지정 액터 및 가치 함수에 대한 네트워크 아키텍처 정의, 강화 학습을 사용하여 Atari 게임 Breakout 플레이와 같은 다른 주제도 다룹니다. 또한 이 과정에는 Atari의 Breakout 게임, 자율 주행을 위한 경주용 자동차 제작, OpenAI Gym 공간을 사용하여 맞춤형 환경 만들기 등 학습자가 강화 학습 기술을 사용하여 구축할 세 가지 프로젝트가 포함되어 있습니다.

02:00:00 - 03:00:00 "강화 학습 3시간 | Full Course using Python"이라는 제목의 YouTube 동영상에서는 강화 학습과 관련된 다양한 주제를 다룹니다. 강사는 경주용 자동차 환경을 사용하여 Atari 게임 및 자율 주행을 위한 강화 학습 에이전트를 훈련하는 방법을 시연합니다. 또한 다양한 OpenAI 체육관 의존성, 도우미, 안정적인 기준선은 물론 강화 학습을 위한 다양한 유형의 공간을 소개합니다. 또한 비디오는 강화 학습을 위한 사용자 지정 환경을 만드는 방법, 환경 상태, 관찰 및 작업 공간 정의, 모델 테스트 및 훈련, 학습 후 훈련된 모델 저장 방법을 다룹니다. 강사는 또한 더 나은 성능을 위해 장기간 훈련 모델의 중요성에 대해 논의하고 시청자가 어려움을 겪을 경우 연락하도록 권장합니다.

  • 00:00:00 비디오의 이 섹션에서 발표자는 강화 학습 과정을 소개하고 과정 전반에 걸쳐 다루게 될 다양한 주제에 대해 설명합니다. 그는 이 과정이 이론과 실제 구현 간의 격차를 해소하도록 설계되었으며 RL 환경 설정에서 사용자 정의 환경 구축에 이르기까지 모든 것을 다룹니다. 발표자는 강화 학습, 응용 프로그램 및 일부 제한 사항에 대한 높은 수준의 개요를 제공합니다. 이 과정은 강화 학습 에이전트를 교육하고 다양한 알고리즘과 아키텍처를 사용하여 테스트 및 평가하는 실습 경험을 제공할 뿐만 아니라 브레이크아웃 환경, 자율 주행 환경 및 맞춤형 환경에 중점을 둔 세 가지 프로젝트를 다룹니다.

  • 00:05:00 "3시간 안에 강화 학습" 비디오의 이 섹션에서는 강사가 강화 학습의 기본 개념을 설명합니다. 강화 학습 에이전트는 다양한 조치를 취함으로써 환경에서 얻는 보상을 기반으로 학습합니다. 에이전트는 특정 결정을 내림으로써 시간이 지남에 따라 보상을 최대화하기 위해 환경을 관찰합니다. 강사는 또한 자율 주행, 증권 거래 및 신경망 아키텍처 검색과 같은 강화 학습의 몇 가지 실용적인 응용 프로그램에 대해 설명합니다.

  • 00:10:00 이 섹션에서는 시뮬레이션된 환경을 사용하여 로봇이 특정 작업을 수행하도록 훈련할 수 있는 로봇 공학을 포함하여 인기 있는 강화 학습 응용 프로그램에 대해 설명합니다. 비디오는 또한 보상 기능이 매번 다를 수 있는 또 다른 인기 있는 응용 프로그램으로 게임을 언급하여 강화 학습에 적합한 환경을 만듭니다. 환경이 마코비안이라는 가정과 훈련이 시간이 많이 걸리고 불안정할 수 있다는 사실을 포함하여 강화 학습의 한계에 대해서도 논의합니다. OpenAI에서 안정적인 기준선 라이브러리를 설치하고 유용한 가이드와 문서를 활용하는 강화 학습 모델 설정에 대해 논의합니다.

  • 00:15:00 이 섹션에서 강사는 과정을 소개하고 다룰 10가지 단계를 설명합니다. 첫 번째 단계는 강화 학습을 위한 오픈 소스 라이브러리인 안정적인 기준선을 포함하여 필요한 종속성을 가져오고 로드하는 것입니다. 강사는 라이브러리 내에서 사용할 수 있는 다양한 알고리즘과 PPO(Proximal Policy Optimization) 사용의 이점에 대해 설명합니다. 종속성에는 운영 체제 기능을 위한 OS와 환경 구축 및 작업을 위한 체육관도 포함됩니다. 전반적으로 프로세스는 간단하며 안정적인 기준으로 시작하는 데 몇 줄의 코드만 필요합니다.

  • 00:20:00 이 섹션에서 강사는 강화 학습에 필요한 종속성과 환경에 대해 설명합니다. 그들은 환경의 벡터화를 통해 더 빠른 기계 학습을 허용하는 안정적인 기준선과 Dummy Vec Env 래퍼를 소개합니다. 또한 OpenAI Gym을 사용하여 시뮬레이션 환경을 구축하여 비용을 절감하고 모델 제작 속도를 높일 수 있는 방법을 설명합니다. 많은 문서와 지원이 있는 OpenAI Gym과 같은 시뮬레이션 환경뿐만 아니라 로봇과 같은 실제 환경의 예를 제공합니다.

  • 00:25:00 영상의 이 섹션에서는 강사가 강화 학습 환경을 만들기 위한 표준인 OpenAI Gym에 대해 설명합니다. 그는 OpenAI Gym이 Fetch Robot 및 Shadow Hand Robot과 같은 실제 로봇을 기반으로 하는 환경을 포함하여 사전 구축된 환경을 제공한다고 설명합니다. 또한 상자, 이산, 튜플, 딕셔너리, 다중 이진 및 다중 이산을 포함하여 OpenAI Gym이 지원하는 다양한 유형의 공간에 대해 설명합니다. 그는 이러한 공간이 에이전트가 환경에서 취할 수 있는 다양한 유형의 값 또는 작업을 나타내는 데 사용된다는 점에 주목합니다. 그런 다음 강사는 강화 학습 에이전트를 교육하는 데 사용할 예로 클래식 제어 환경, 특히 CartPole 문제를 소개합니다. 목표는 두 가지 작업을 사용하여 빔을 왼쪽 또는 오른쪽으로 이동하여 빔의 균형을 맞추는 것입니다.

  • 00:30:00 이 섹션에서는 강사가 OpenAI Gym을 사용하여 환경을 로드하고 테스트하는 방법을 설명합니다. 두 줄의 코드를 사용하여 CartPole-v0 환경을 인스턴스화하는 것으로 시작합니다. 그런 다음 여러 에피소드를 반복하고 env.reset()을 사용하여 초기 관찰 세트를 가져오는 방식으로 환경을 테스트하는 방법을 시연합니다. 이러한 관찰은 나중에 보상을 최대화하기 위한 최선의 조치를 결정하기 위해 강화 학습 에이전트로 전달됩니다. 강사는 알고리즘을 구현하기 전에 환경을 이해하는 것의 중요성에 주목합니다.

  • 00:35:00 이 섹션에서 강사는 강화 학습에서 환경을 샘플링하는 데 사용되는 코드를 설명합니다. 코드는 환경에 대한 최대 단계 수를 설정하고, 점수 카운터를 설정하고, 환경에서 정의한 작업 공간을 기반으로 임의 작업을 생성합니다. 각 작업 후 환경에서 반환된 관찰에는 에피소드가 완료되었는지 여부를 나타내는 값과 보상이 수반됩니다. 결과가 출력되고 테스트 후 환경이 닫힙니다. 강사는 또한 관찰 공간의 개념을 설명하고 샘플링 방법을 시연합니다.

  • 00:40:00 이 섹션에서 강사는 환경의 두 부분인 행동 공간과 관찰 공간에 대해 설명하고 OpenAI Gym 문서에서 어떻게 표현되는지 설명합니다. 관찰 공간은 카트 위치, 속도, 극 각도 및 극 각속도를 나타내는 네 가지 값으로 구성됩니다. 반면에 행동 공간에는 0이 카트를 왼쪽으로 밀고 1이 카트를 오른쪽으로 미는 0 또는 1의 두 가지 가능한 행동이 있습니다. 이 섹션에서는 강화 학습, 모델 기반 및 모델 없는 다양한 유형의 알고리즘과 이들이 어떻게 다른지 강조합니다. 강사는 Model-Free Reinforcement Learning에 중점을 두고 교육 단계에서 사용할 A2C 및 PPO 알고리즘에 대해 자세히 설명합니다.

  • 00:45:00 비디오의 이 섹션에서 강사는 사용 중인 환경의 행동 공간을 기반으로 적절한 강화 학습 알고리즘을 선택하는 방법을 설명합니다. 그는 계속해서 A2C, DDPG, DQN, HER, PPO, SAC 및 TD3와 같은 Stable Baselines에서 사용할 수 있는 다양한 유형의 알고리즘과 이들이 가장 잘 작동하는 작업 공간에 대해 설명합니다. 또한 강사는 평가 메트릭, 시간 메트릭, 손실 메트릭 및 기타 메트릭과 같이 교육 중에 고려해야 하는 교육 메트릭에 대해 설명합니다. 그는 GPU 가속을 사용하거나 사용하지 않고 안정적인 기준선을 설치할 수 있음을 사용자에게 상기시키고 GPU 가속이 필요한 경우 PyTorch 설치 지침을 제공합니다.

  • 00:50:00 이 섹션에서 강사는 GPU 가속을 활용하려는 사람들에게 중요한 강화 학습을 위한 컴퓨팅 플랫폼을 설정하는 방법에 대해 설명합니다. CUDA 및 cuDNN은 NVIDIA GPU에서만 지원되므로 사용자는 CUDA를 사용하여 GPU 가속을 활용하려면 NVIDIA GPU가 있는지 확인해야 합니다. 반면 AMD GPU는 Linux에서만 사용할 수 있는 베타 패키지인 RockM에서 지원합니다. 또한 강사는 전통적인 딥 러닝이 강화 학습보다 GPU를 사용하여 더 많은 성능 향상을 볼 수 있다고 강조합니다. 마지막으로 강사는 로그 경로를 정의하고 알고리즘과 에이전트를 인스턴스화합니다.

  • 00:55:00 이 섹션에서 강사는 람다 함수를 사용하여 더미 벡터화 환경 내부에 벡터화되지 않은 환경을 래핑하는 방법을 보여줍니다. 그런 다음 학습할 에이전트인 모델을 PPO로 정의하고 정책, 환경, 상세 로그 경로, 텐서보드 로그 경로를 인수로 전달합니다. 강사는 계속해서 PPO 알고리즘에 전달할 수 있는 다양한 하이퍼파라미터에 대해 설명합니다. 마지막으로 model.learn 함수를 사용하고 모델을 훈련하기 위한 시간 단계 수(이 예제에서는 20,000으로 설정됨)를 통과하여 모델을 훈련하는 방법을 보여줍니다. 모델이 훈련된 후 강사는 모델을 테스트하고 훈련 지표를 확인합니다.


2 부

  • 01:00:00 비디오의 이 섹션에서 강사는 학습된 모델을 저장하고 다시 로드하는 방법을 보여줍니다. 모델은 `model.save()` 함수를 사용하여 저장되며 저장된 모델을 찾기 위한 경로가 정의됩니다. 그런 다음 강사는 저장된 모델을 삭제하고 `ppo.load()` 함수를 사용하여 다시 로드하는 방법을 시연합니다. 다음 단계는 학습된 모델을 테스트하여 성능을 확인하는 것입니다. 강사는 롤아웃 메트릭이 교육에 사용되는 알고리즘에 따라 달라지며 'A2C' 알고리즘이 교육 중에 이러한 메트릭을 제공하는 반면 'PPO' 알고리즘은 이러한 메트릭을 생성하기 위해 명시적인 명령이 필요하다고 설명합니다.

  • 01:05:00 이 섹션에서는 비디오에서 evaluate_policy 메서드를 사용하여 모델의 성능을 테스트하고 이 특정 사례에서 PPO 모델이 '해결'된 것으로 간주되는지 여부를 확인하는 방법을 설명합니다. evaluate_policy 메소드는 모델이 얼마나 잘 수행되고 있는지 테스트하는 방법으로 평균 200점 이상이면 모델이 해결된 것으로 간주됩니다. 방법은 모델, 환경, 테스트할 에피소드 수 및 렌더링이 필요한지 여부를 통해 전달됩니다. 평균 보상과 해당 보상의 표준 편차는 evaluate_policy에서 얻는 값이며 환경 종료는 emv.close를 사용하여 수행됩니다. 마지막으로 동영상은 캡슐화된 함수에서 모델을 배포하는 방법을 강조합니다.

  • 01:10:00 이 섹션에서 강사는 보상을 극대화하기 위해 에이전트를 사용하여 최상의 행동을 예측하기 위해 환경의 관찰을 사용하는 방법을 보여줍니다. 코드 블록은 모델을 사용하여 작업을 수행하기 위해 env.actionspace.sample 대신 model.predict를 사용하도록 주요 변경을 수행하는 방법을 보여줍니다. 강사는 에이전트가 무작위 단계보다 더 잘 수행하고 기둥의 균형을 잡는다는 것을 보여줍니다. 이 코드는 또한 model.predict 함수에 전달된 관측값을 보여주며 두 값, 모델 작업 및 다음 상태가 반환됩니다. 여기서 첫 번째 값은 에이전트에 대한 최선의 작업을 결정하는 데 사용됩니다.

  • 01:15:00 이 섹션에서 강사는 강화 학습의 핵심 구성 요소인 에이전트, 환경, 작업 및 보상에 대해 설명합니다. 그는 환경을 정의하고 강화 학습을 사용하여 모델을 훈련하는 방법을 시연하여 기둥을 넘어지지 않고 똑바로 세운 상태로 유지함으로써 매번 1의 값을 축적합니다. 강사는 TensorBoard를 사용하여 교육 프로세스를 모니터링하는 교육 로그를 보는 방법도 보여줍니다.

  • 01:20:00 비디오의 이 섹션에서 강사는 Jupiter 노트북에서 TensorBoard를 사용하여 강화 학습 모델의 교육 지표를 보는 방법을 설명합니다. 그는 매직 명령을 사용하여 TensorBoard 명령을 실행하는 방법과 훈련 로그 경로를 지정하는 방법을 보여줍니다. 강사는 또한 TensorBoard에서 초당 프레임 수, 엔트로피 손실, 학습률 및 정책 기울기 손실과 같은 훈련 메트릭을 보는 방법을 보여줍니다. 그는 평균 보상이 모델의 성능을 조정할 때 모니터링해야 할 가장 중요한 메트릭이라고 강조합니다. 그는 시청자의 피드백과 의견을 요청하며 마무리합니다.

  • 01:25:00 이 섹션에서 비디오는 강화 학습 모델의 성능을 결정하는 두 가지 주요 메트릭인 보상 메트릭과 평균 에피소드 길이에 대해 설명합니다. 또한 이 비디오는 장기간 훈련, 하이퍼파라미터 튜닝, 다양한 알고리즘 탐색을 포함하여 모델 성능이 좋지 않을 경우 모델 성능을 개선하기 위한 세 가지 전략을 제공합니다. 그런 다음 이 섹션에서는 콜백, 대체 알고리즘 및 아키텍처를 자세히 살펴보고 보상 임계값이 충족되면 훈련을 중지하도록 콜백을 설정하는 방법과 다양한 신경망 아키텍처 및 알고리즘을 탐색하는 방법을 구체적으로 설명합니다. 이 비디오는 또한 더 긴 교육 시간이 필요한 대형 모델에 콜백을 사용하는 것의 중요성을 강조합니다.

  • 01:30:00 이 섹션에서는 강사가 보다 유연하고 효율적인 교육을 위해 강화 학습에서 콜백을 사용하는 방법을 설명합니다. 예제에서는 중지 콜백과 평가 콜백의 두 가지 콜백이 사용됩니다. 중지 콜백은 교육이 중지되어야 하는 평균 보상을 지정하는 반면 평가 콜백은 최상의 새 모델을 평가하고 보상 임계값을 통과했는지 여부를 확인합니다. 강사는 또한 새로운 신경망 아키텍처를 지정하여 정책을 변경하는 방법을 시연합니다. 전반적으로 콜백은 강화 학습 모델을 더 잘 제어할 수 있으므로 보다 맞춤화되고 효과적인 교육이 가능합니다.

  • 01:35:00 이 섹션에서 발표자는 신경망에서 사용자 지정 액터 및 가치 함수에 대한 네트워크 아키텍처를 지정하는 프로세스에 대해 설명합니다. 이는 유닛과 레이어의 수를 변경하고 모델에 전달하는 것만으로 간단하게 수행할 수 있습니다. 연사는 또한 사용자 정의 기능 추출기를 정의할 수 있음을 강조하고 PPO 대신 DQN과 같은 대체 알고리즘을 사용하는 방법을 보여주고 안정적인 기준선에서 사용할 수 있는 다른 알고리즘을 강조합니다. 발표자는 훈련된 DQN 모델을 보여주면서 마무리합니다.

  • 01:40:00 이 섹션에서 강사는 강화 학습 기술을 사용하여 학습자가 구축할 프로젝트에 대해 설명합니다. 그들은 Atari의 Breakout 게임인 Project One으로 시작할 것입니다. 그런 다음 강화 학습을 사용하여 자율 주행을 시뮬레이션하는 경주용 자동차를 만드는 프로젝트 2에 도전할 것입니다. 마지막으로 그들은 OpenAI Gym 공간을 사용하여 맞춤형 환경을 만드는 프로젝트 3에서 작업할 것입니다. 또한 강사는 프로젝트에 필요한 라이브러리 및 종속성을 가져오는 것이 기본 과정의 것과 유사한 방법을 설명하고 프로젝트에 따라 다른 알고리즘만 사용하면 됩니다.

  • 01:45:00 이 섹션에서는 비디오 강사가 Python에서 강화 학습을 위한 Atari 환경을 설정하는 방법을 설명합니다. 최근 변경 사항으로 인해 사용자는 atarimania.com에서 원시 파일을 다운로드하고 폴더에 압축을 풀어야 환경을 사용할 수 있습니다. 필요한 패키지 및 종속성을 설치한 후 사용자는 "emv.reset" 및 "emv.action_space" 기능을 사용하여 환경을 테스트할 수 있습니다. 관찰 공간은 210x160x3 크기의 이미지를 나타내는 상자입니다. 강사는 또한 환경 내에서 모델을 테스트하는 방법을 시연합니다.

  • 01:50:00 이 섹션에서 강사는 무작위 작업을 사용하여 브레이크아웃을 플레이하는 코드를 보여주고 모델 교육에 시간이 오래 걸릴 수 있음을 지적합니다. 교육 속도를 높이기 위해 강사는 환경을 벡터화하고 동시에 4가지 환경을 교육합니다. 사용 환경은 CNN 정책을 사용할 것이기 때문에 Breakout의 RAM 버전이 아닌 이미지 기반 환경입니다. CNN 정책과 함께 로그 경로 및 A2C 알고리즘을 지정하는 것을 포함하여 모델을 설정하기 위한 코드가 표시됩니다.

  • 01:55:00 이 섹션에서 비디오 강사는 강화 학습을 사용하여 Atari 게임 "Breakout"을 플레이하도록 모델을 교육합니다. 이 모델은 다층 퍼셉트론 정책보다 학습 속도가 빠른 CNN(컨볼루션 신경망) 정책을 사용합니다. 환경은 OpenAI Gym의 make_atari 기능을 사용하여 정의되며 벡터화는 교육 프로세스 속도를 높이는 데 사용됩니다. 모델은 100,000단계 동안 훈련되고 모델을 저장하고 다시 로드한 후 평가 정책 방법을 사용하여 평가됩니다. 최종 모델은 6.1의 평균 에피소드 보상과 1.9의 표준 편차를 달성하여 랜덤 에이전트에 비해 크게 개선되었습니다. 강사는 또한 300,000단계에 대해 훈련된 사전 훈련된 모델과 이를 로드하고 테스트하는 방법에 대한 정보를 제공합니다.


파트 3

  • 02:00:00 이 섹션에서 강사는 환경, 특히 Atari로 작업할 때 정지 문제를 처리하는 방법에 대해 설명합니다. 환경이 정지되면 노트북을 다시 시작해야 하며 모델을 저장한 후 커널을 다시 시작해야 합니다. 그런 다음 강사는 의존성 가져오기, Atari ROM 설치, 4개의 Atari 환경에서 동시에 훈련하기 위한 환경 벡터화, 에이전트 훈련, 마지막으로 모델 평가 및 저장 프로세스를 통해 브레이크아웃을 위한 강화 학습 에이전트를 훈련하는 방법을 시연합니다. 강사는 또한 모델을 더 오래 훈련하는 것의 영향을 보여주고 학습자가 스스로 시도할 수 있도록 Github 리포지토리에서 훈련된 모델을 사용할 수 있도록 합니다.

  • 02:05:00 3시간 후 강화 학습에 대한 비디오의 이 섹션에서 강사는 강화 학습을 사용하여 게임을 플레이하도록 모델을 교육하는 것과 관련된 프로젝트 1의 결과를 보여줌으로써 시작합니다. 모델은 22.22의 50개 에피소드에 대한 평균 보상과 9.1의 표준 편차로 이전 모델보다 훨씬 더 나은 성능을 보였습니다. 이어서 강사는 경주용 자동차 환경을 사용하여 자율 주행을 위한 강화 학습을 사용하는 프로젝트 2를 소개합니다. 환경을 설정하기 위해 강사는 swig가 설치되어야 하고 두 개의 새로운 종속성(box 2d 및 piglet)이 설치되어야 한다고 설명합니다. 그런 다음 강사는 환경을 테스트하고 필요한 종속성을 가져오는 프로세스를 진행합니다.

  • 02:10:00 이 섹션에서는 강화 학습을 위한 자동차 경주 환경의 관찰 및 행동 공간에 대해 설명합니다. 관찰 공간은 0에서 255 사이의 값을 갖는 96 x 96 x 3 이미지이고, 행동 공간은 세 가지 다른 값에 대해 -1과 1 사이입니다. 보상 함수는 모든 프레임에 대해 -0.1이고 방문한 모든 트랙 타일에 대해 1000을 n으로 나눈 값입니다. 게임은 에이전트가 지속적으로 900점 이상을 획득할 수 있을 때 해결된 것으로 간주되며, 이는 학습을 통해 달성하는 데 시간이 걸릴 수 있습니다. 그런 다음 비디오는 PPO 알고리즘을 사용하여 모델을 훈련하고 훈련된 모델을 사용하여 레이싱 환경을 테스트하는 방법을 보여줍니다.

  • 02:15:00 이 섹션에서 강사는 OpenAI Gym을 사용하여 자율주행차를 위한 환경을 설정하고 더미 Vectorize Environment Wrapper 내부에 래핑합니다. 그런 다음 PPO 알고리즘을 사용하여 에이전트와 모델을 지정하고 모델을 100,000단계 동안 훈련합니다. 저장된 모델은 환경에서 로드되고 평가되며, 고성능 자동차의 견인력 부족에도 불구하고 전진하지 않고 회전하며 도넛을 만듭니다. 마지막으로 환경이 닫히고 강사는 테스트를 위해 438,000단계에 대해 훈련된 모델을 로드합니다.

  • 02:20:00 이 섹션에서 강사는 438,000걸음으로 훈련된 자율주행차 모델을 로드하고 트랙에서 테스트합니다. 속도는 느리지만 트랙을 따라가며 100,000보를 학습한 이전 모델보다 훨씬 높은 점수를 얻습니다. 강사는 강화 학습 에이전트를 장기간 훈련하면 훨씬 더 나은 모델을 생성할 수 있으며 이상적으로는 이 모델이 최적의 성능을 발휘하기 위해 1~2백만 단계에 대해 훈련되어야 한다고 설명합니다. 그는 기본 자습서의 코드 스니펫을 사용하여 모델을 테스트하는 방법을 시연합니다. 이 코드는 모델이 이미지에 대해서만 훈련된 경우에도 성공적으로 트랙을 탐색할 수 있음을 보여줍니다. 궁극적으로 강사는 이 모델을 200만 단계 추가로 훈련하여 성능을 개선하고 약 700개의 보상 추정치에 도달했습니다.

  • 02:25:00 이 섹션에서 강사는 이따금 코너에서 회전하지만 자신이 훈련한 이전 모델보다 성능이 훨씬 뛰어난 모델을 로드하고 실행합니다. 그는 이전 모델보다 크게 향상된 800점에 달하는 모델의 평가 점수를 보여줍니다. 그는 이 모델이 더 긴 기간 동안 훈련되었고 높은 표준 편차를 가졌다고 지적합니다. 그런 다음 강사는 맞춤형 환경에서 강화 학습을 위해 안정적인 기준선을 사용하는 것과 관련된 마지막 프로젝트를 소개합니다. 그는 필요한 종속성을 가져오고 시청자가 어려움에 직면하면 연락하도록 권장합니다.

  • 02:30:00 비디오의 이 섹션에서 강사는 강화 학습 과정에서 사용될 다양한 체육관 종속성 또는 OpenAI 체육관 종속성, 헬퍼 및 안정적인 기준 항목을 살펴봅니다. 표준 가져오기인 gym, env의 체육관 환경 클래스 및 이산, 상자, 사전, 튜플, 다중 이진, 다중 이산과 같은 다양한 유형의 공간을 가져옵니다. 강사는 이러한 각 공간을 사용하는 방법과 다양한 용도로 사용할 수 있는 방법을 설명합니다. 강사는 또한 numpy, random, os와 같은 가져온 다양한 헬퍼와 ppo, common.vec_env, dummy_vec_nv 및 evaluate_policy 함수를 포함한 안정적인 기준 항목을 살펴봅니다.

  • 02:35:00 비디오의 이 섹션에서 발표자는 강화 학습을 위해 OpenAI Gym에서 사용할 수 있는 다양한 유형의 공간에 대해 설명합니다. 이러한 공간에는 불연속, 상자, 튜플, 사전, 다중 이진 및 다중 불연속이 포함됩니다. 발표자는 이러한 각 공간에 대한 예와 설명을 제공합니다. 그런 다음 비디오는 에이전트가 샤워 온도를 조절하도록 교육하기 위한 시뮬레이션 환경 구축에 대해 논의합니다. 궁극적인 목표는 37도에서 39도 사이의 온도를 달성하는 것이지만 에이전트는 이를 선험적으로 알지 못하고 시행착오를 통해 학습해야 합니다.

  • 02:40:00 이 섹션에서 강사는 네 가지 주요 기능을 구현하여 샤워 환경용 쉘을 구축합니다. 이러한 기능은 초기화, 단계, 렌더링 및 재설정입니다. init 함수는 행동 공간, 관찰 공간 및 초기 상태를 정의하여 환경을 초기화합니다. 단계 함수는 작업을 수행하고 환경에 적용합니다. render 함수는 환경을 표시합니다. 재설정 기능은 환경을 초기 상태로 재설정합니다. 강사는 또한 환경에 대해 에피소드 길이를 60초로 설정합니다.

  • 02:45:00 이 섹션에서 강사는 6개의 코드 블록이 포함된 샤워 환경에 대한 단계 함수를 정의합니다. 첫 번째 블록은 세 가지 가능한 조치로 0, 1 및 2로 상태에 대한 조치의 영향을 적용합니다. 0은 온도를 1도 낮추고, 1은 온도를 그대로 유지하며, 2는 온도를 1도 높입니다. 두 번째 블록은 샤워 시간을 1초 줄입니다. 세 번째 블록은 온도가 37도에서 39도 사이이면 보상을 1로, 범위를 벗어나면 -1로 보상을 정의합니다. 네 번째 블록은 샤워가 완료되었는지 확인하고 샤워 시간이 0보다 작거나 같으면 done으로 설정합니다. 다섯 번째 블록은 빈 정보 사전을 생성하고 마지막 블록은 상태, 보상, 샤워 완료 여부 및 사전을 반환합니다. 재설정 기능은 초기 온도를 기본값으로 재설정하고 샤워 시간을 60초로 재설정합니다.

  • 02:50:00 이 섹션에서는 강사가 Python을 사용하여 강화 학습을 위한 사용자 지정 환경을 만드는 방법을 설명합니다. 그는 환경의 상태와 관찰 및 행동 공간을 정의하는 방법을 보여줍니다. 또한 강사는 정의된 환경을 사용하여 모델을 테스트하고 훈련하는 방법과 학습 후 훈련된 모델을 저장하는 방법을 보여줍니다. 그는 게임 환경이 단순한 환경에 비해 훈련하는 데 시간이 더 오래 걸린다고 언급하고 프로젝트를 계획하고 고객에게 약속할 때 이를 염두에 두도록 권장합니다.

  • 02:55:00 이 섹션에서는 강사가 훈련된 모델을 테스트하고 저장하는 방법을 시연합니다. 그들은 '정책 평가' 방법을 사용하여 모델의 성능을 테스트한 다음 'model.save' 방법을 사용하여 모델을 저장합니다. 또한 안정적인 기준선을 사용하여 환경을 설정하는 것부터 PPO, A2C 및 DQN을 비롯한 다양한 알고리즘을 사용하여 모델을 교육하는 것까지 다양한 주제를 다루는 과정에 대한 간략한 요약을 제공합니다. 또한 Breakout을 플레이하거나 트랙에서 자동차 경주를 하도록 모델을 교육하는 것과 같은 맞춤형 환경 만들기 및 프로젝트 구축에 대해 논의합니다.

  • 03:00:00 이 섹션에서 강사는 David Silva의 Reinforcement Learning 과정, Richard Sutton 및 Andrew Bartos의 Reinforcement Learning: An Introduction 책, 하이퍼파라미터 튜닝 탐색, 맞춤형 환경 구축 등 추가 학습을 위한 추가 리소스를 추천합니다. , 라즈베리 파이를 사용하여 실제 환경에서 구현하기 전에 카트 폴 로봇을 구축하고 시뮬레이션 환경에서 교육하는 것과 같은 엔드 투 엔드 솔루션을 구현합니다. 강사는 시청자의 피드백과 질문을 장려하고 시청해 주셔서 감사합니다.
GitHub - nicknochnack/ReinforcementLearningCourse
  • nicknochnack
  • github.com
Contribute to nicknochnack/ReinforcementLearningCourse development by creating an account on GitHub.
 

Python으로 ACTION RECOGNITION을 사용한 수화 탐지 | LSTM 딥러닝 모델

코드: https://github.com/nicknochnack/ActionDetectionforSignLanguage



Python으로 ACTION RECOGNITION을 사용한 수화 탐지 | LSTM 딥러닝 모델

"Sign Language Detection using ACTION RECOGNITION with Python | LSTM Deep Learning Model"이라는 제목의 이 YouTube 동영상에서 발표자는 동작 감지 및 주요 모델을 사용하여 실시간 수화 감지 흐름을 구축하는 방법을 설명합니다. 발표자는 OpenCV 및 MediaPipe Holistic을 사용하여 손, 얼굴 및 신체에서 핵심 포인트를 추출한 다음 TensorFlow 및 Keras를 사용하여 일련의 프레임에서 시연되는 동작을 예측하는 LSTM 모델을 구축합니다. 발표자는 웹캠에서 핵심 포인트에 액세스하고 추출하는 과정을 거치고, 웹캠에 액세스하기 위한 루프를 설정하고, 웹캠에서 마지막으로 캡처된 프레임에 랜드마크를 적용하여 수화 감지를 더 쉽게 만듭니다. 또한 누락된 핵심 포인트를 처리하도록 코드를 수정하고 포즈 모델 및 얼굴 랜드마크 감지에 오류 처리를 추가하는 방법을 보여줍니다. 마지막으로 발표자는 Python으로 동작 인식을 이용한 수화 감지를 위한 키포인트 추출 기능에 대해 설명합니다.

이 비디오는 Python으로 동작 인식을 사용하여 수화 감지 모델을 만드는 방법에 대한 자세한 설명을 제공합니다. 데이터를 수집하기 위해 발표자는 각 동작 및 시퀀스에 대한 폴더를 만들고 MediaPipe 루프를 수정하여 각 동작에 대해 비디오당 30개의 키 포인트 값을 수집합니다. 데이터는 LSTM 딥러닝 모델에 대한 레이블 및 기능을 생성하여 전처리되며 모델은 TensorFlow 및 Keras를 사용하여 학습됩니다. 학습된 모델은 다중 레이블 혼동 행렬 및 정확도 점수 함수를 사용하여 평가됩니다. 마지막으로 실시간 감지는 특정 신뢰 메트릭 이상의 결과를 렌더링하기 위해 구현된 임계값 변수와 함께 감지를 위한 새 변수를 생성하고 프레임을 연결하고 예측 논리를 적용하여 설정됩니다.

비디오 자습서는 동작 인식을 사용하여 수화 감지를 위해 Python 및 LSTM 딥 러닝 모델을 사용하는 방법을 보여줍니다. 화자는 예측 논리를 훑어보며 코드를 설명해주어 이해하기 쉽게 만들었다. 또한 시청자에게 추가 방법을 사용하여 코드를 조정하고 감지 임계값을 높이고 확률 시각화를 추가하여 감지를 시각적으로 매력적으로 만드는 방법을 보여주었습니다. 발표자는 결과가 임계값을 초과하는지 확인하는 방법, 확률을 조작하는 방법, 추가 작업 또는 시각화를 추가하여 프로젝트를 확장 및 수정하는 방법에 대해서도 설명했습니다. 마지막으로 연사는 오탐을 최소화하고 모델의 정확도를 높이는 모델의 추가 로직을 제시하고 동영상과 채널을 지원해달라는 권유를 했다.

  • 00:00:00 동영상의 이 섹션에서 제작자는 동작 감지 및 주요 모델을 사용하여 실시간 수화 감지 흐름을 생성하려는 목표를 설명합니다. 그들은 MediaPipe Holistic을 사용하여 손, 얼굴 및 몸에서 핵심 포인트를 추출한 다음 TensorFlow 및 Keras를 사용하여 일련의 프레임에서 시연되는 동작을 예측하는 LSTM 모델을 구축할 것입니다. 이 프로세스에는 핵심 포인트에 대한 데이터 수집, 신경망 훈련, 정확도 평가, OpenCV 및 웹캠을 사용한 실시간 모델 테스트가 포함됩니다. 작성자는 이 프로세스를 달성하기 위한 11단계를 설명하고 종속성을 설치하고 가져오는 것으로 시작합니다.

  • 00:05:00 이 섹션에서 발표자는 OpenCV, MediaPipe, scikit-learn, NumPy, Matplotlib 및 TensorFlow를 포함하여 프로젝트에서 사용될 다양한 종속성에 대해 설명합니다. 이러한 종속성을 가져온 후 발표자는 OpenCV 및 MediaPipe Holistic을 사용하여 웹캠에서 키 포인트에 액세스하고 추출하는 과정을 거칩니다. 그런 다음 발표자는 루프를 설정하여 웹캠에 액세스하고 화면에 여러 프레임을 렌더링하여 프로젝트를 실시간으로 테스트할 수 있습니다. 이 루프는 프레임을 추출하고 프로젝트를 테스트할 때를 포함하여 프로젝트 전체에서 여러 번 사용됩니다. 프로젝트에 사용된 모든 코드는 최종 학습 가중치를 포함하여 Github에서 사용할 수 있습니다.

  • 00:10:00 비디오의 이 섹션에서 발표자는 OpenCV를 사용하여 웹캠에 액세스하고 모든 프레임을 통해 반복을 시작하는 방법을 설명합니다. 발표자는 "비디오 캡처" 기능을 사용하여 웹캠에서 피드를 읽고 읽고, 표시하고 키 누르기가 루프를 벗어날 때까지 기다리는 루프를 시작합니다. 발표자는 루프를 정상적으로 끊는 방법과 웹캠이 나타나지 않는 경우 장치 번호 문제를 해결하는 방법도 설명합니다. 마지막으로 발표자는 포즈 감지를 위한 전체적 모델을 다운로드 및 활용하고 이미지에 포즈 랜드마크를 그리는 데 사용되는 두 개의 Python 모듈인 MediaPipe Holistic 및 MediaPipe 드로잉 유틸리티를 소개합니다.

  • 00:15:00 대본의 이 섹션에서 화자는 수화 감지를 더 쉽게 하기 위한 기능을 설정합니다. 이 함수는 이미지와 미디어 파이프 전체론적 모델을 가져와 BGR에서 RGB로 색상 변환, 감지, 이미지를 BGR로 다시 변환하는 등 일련의 단계를 거쳐 이미지와 결과를 루프에 반환합니다. 표현. 이 단계는 대칭적으로 수행되어 감지 전에 이미지가 쓰기 불가능으로 설정되고 이후에 다시 쓰기 가능으로 설정되도록 합니다. 화자는 또한 이미지 색상을 변환하는 데 사용되는 cvtColor 기능을 설명하고 루프에서 미디어 파이프 감지 기능을 호출하는 방법을 보여줍니다.

  • 00:20:00 이 섹션에서 발표자는 "with 문"을 사용하여 MediaPipe 모델에 액세스하는 방법을 설명하고 초기 및 추적 신뢰도를 설정합니다. 또한 다양한 유형의 랜드마크(얼굴, 왼손 및 오른손, 포즈 랜드마크)에 액세스하고 시각화하는 방법을 보여줍니다. 그런 다음 발표자는 MediaPipe Holistic을 사용하여 랜드마크를 감지하고 결과를 프레임에 표시하는 방법을 시연합니다. 마지막으로 함수를 작성하여 랜드마크를 화면에 렌더링하는 방법을 보여줍니다.

  • 00:25:00 이 섹션에서 YouTube 사용자는 랜드마크 데이터를 이미지에 렌더링하여 프로젝트에 사용된 미디어 파이프 모델에서 감지한 다양한 랜드마크를 시각화할 수 있는 "draw_landmarks"라는 새 기능을 설정합니다. 이 함수는 미디어 파이프에서 제공하는 "mp.drawing" 도우미 함수를 사용하여 랜드마크를 그리고 이미지 및 랜드마크 데이터를 입력으로 필요로 합니다. 이 기능을 사용하면 연결 맵 및 형식 지정 옵션을 지정할 수도 있습니다. 그런 다음 YouTube 사용자는 matplotlib의 "plot.imshow" 기능을 사용하여 웹캠에서 마지막으로 캡처한 프레임을 표시하는 방법을 시연합니다.

  • 00:30:00 이 섹션에서는 화자가 이미지의 색상을 보정하고 랜드마크를 "랜드마크 그리기" 기능을 통해 전달하여 이미지에 적용합니다. 미디어 파이프 감지 모델의 결과는 마지막 프레임과 루프 실행 결과로 액세스됩니다. "mp_drawing.draw_landmarks" 메서드는 현재 프레임에 적용되어 모든 손, 포즈 및 얼굴 연결을 렌더링합니다. 그런 다음 화자는 실시간 루프에 "랜드마크 그리기" 기능을 적용하고 렌더링하기 전에 "랜드마크 드로잉 사양" 및 "연결 드로잉 사양"을 사용하여 서식을 적용하여 점과 연결을 각각 그립니다. 마지막으로 화자는 원하는 경우 "랜드마크 그리기" 기능을 사용자 지정하기 위해 "드로우 스타일 랜드마크"라는 새 기능을 만듭니다.

  • 00:35:00 이 섹션에서 발표자는 mp_drawing.drawing_spec 기능에 대한 두 가지 추가 매개변수(색상 및 원 반경)를 추가하여 랜드마크 그리기 기능의 형식을 업데이트합니다. 이들은 얼굴 랜드마크의 변경 사항을 보여주고 첫 번째 매개변수가 랜드마크를 색칠하고 두 번째 매개변수가 연결을 색칠한다고 설명합니다. 그런 다음 스피커는 포즈와 손 모델 각각에 대한 기능 변경 사항을 복사하여 각 모델에 고유한 색상을 부여합니다. 변경 사항은 순전히 외관상이며 성능에는 영향을 미치지 않지만 작동 중인 다양한 모델을 보여줍니다.

  • 00:40:00 이 섹션에서 비디오 자습서는 MediaPipe 전체적 모델의 결과 변수에서 키 포인트 값을 numpy 배열로 연결하고 오류를 처리하여 복원력 있는 방식으로 추출하는 방법을 설명합니다. 이 자습서는 하나의 랜드마크에 대한 값을 추출하고 루프 및 목록 이해를 사용하여 모든 랜드마크에 대해 업데이트하는 방법을 안내합니다. 그런 다음 모든 랜드마크가 포함된 최종 배열은 평면화되어 여러 랜드마크 세트가 아닌 하나의 배열에 모든 값을 포함합니다.

  • 00:45:00 이 섹션에서 발표자는 손이 프레임을 벗어나서 키 포인트가 없을 때 처리할 코드를 수정하는 방법을 설명합니다. 왼쪽 랜드마크에는 각각 3개의 값이 있고 총 63개의 값이 필요한 21개의 랜드마크가 있음을 보여줌으로써 시작합니다. 그런 다음 누락된 값을 빈 numpy 배열로 대체하는 if 문을 적용합니다. 그런 다음 동일한 수정이 63개의 값을 갖는 오른쪽 랜드마크에 적용됩니다. 이 코드는 x, y 및 z 값을 하나의 큰 배열로 연결한 다음 LSTM 모델에서 사용하기 위해 적절한 형식으로 평면화하여 서로 다른 키 포인트를 추출합니다.

  • 00:50:00 이 섹션에서 발표자는 포즈 모델 및 얼굴 랜드마크 감지에 오류 처리를 추가하는 방법에 대해 논의하고 "extract_key_points"라는 함수를 만들어 랜드마크 감지 및 동작 감지에 필요한 핵심 포인트를 추출합니다. 이 함수는 numpy 배열을 사용하고 결과를 반복하여 각 랜드마크에 대한 x, y, z 값을 추출한 다음 배열로 평면화합니다. 연사는 또한 비디오 설명에서 코드를 사용할 수 있다고 언급하고 시청자가 댓글에서 질문하도록 초대합니다.

  • 00:55:00 이번 영상에서는 화자가 Python으로 동작 인식을 이용한 수화 탐지를 위한 키포인트 추출 기능을 설명합니다. 이 함수는 포즈, 얼굴, 왼손, 오른손에 대한 키 포인트를 추출하고 평면화된 numpy 배열로 연결합니다. 이러한 핵심 포인트는 사람 행동 감지를 이용한 수화 감지에 사용되는 프레임 값을 형성합니다. 화자는 또한 내보낸 데이터 경로 및 각 작업에 대해 30프레임의 데이터를 사용하여 감지할 동작(안녕하세요, 감사합니다, 사랑합니다)에 대한 변수를 설정합니다.
  • 01:00:00 이번 영상에서는 발표자가 파이썬으로 동작인식을 이용해 수화를 감지하기 위한 데이터 수집 과정을 설명한다. 그들은 감지하려는 세 가지 동작 각각에 대해 30개의 비디오에 해당하는 데이터를 수집할 것이며 각 비디오의 길이는 30프레임이라고 설명합니다. 이는 상당한 양의 데이터에 해당하지만 발표자는 시청자에게 단계적으로 진행할 것이라고 안심시킵니다. 계속해서 각 동작 및 동작 시퀀스에 대한 폴더를 만들고 각 시퀀스의 각 프레임에서 30개의 키 포인트가 numpy 배열로 저장됩니다. 발표자는 또한 11단계에서 시청자에게 단어를 연결하여 문장을 형성하는 방법을 보여줄 것이라고 언급합니다.

  • 01:05:00 이 섹션에서는 강사가 수화 인식 모델에 대한 데이터를 수집하는 방법을 보여줍니다. 그는 세 가지 기호 클래스(안녕하세요, 감사합니다, 사랑합니다)에 대한 폴더와 해당하는 개별 시퀀스 폴더를 만드는 것으로 시작합니다. 그런 다음 데이터를 수집하기 위해 각 작업, 비디오 및 프레임을 반복하도록 미디어 파이프 루프를 수정합니다. 프레임이 너무 빨리 수집되지 않도록 하기 위해 그는 논리 문을 사용하여 각 비디오 사이에 휴식을 추가합니다. 이를 통해 모델은 비디오당 30개의 핵심 포인트 값을 수집하여 각각 작업당 30개의 비디오와 비디오당 30개의 프레임이 있는 세 가지 작업의 스택 세트를 효과적으로 구축합니다.

  • 01:10:00 이 섹션에서는 비디오 제작자가 OpenCV 및 딥 러닝 모델을 사용하여 비디오에서 수화 제스처를 감지하는 Python 스크립트의 수집 논리에 대한 설명을 제공합니다. 논리는 화면에 텍스트를 출력하고 두 번째 프레임마다 휴식을 취하는 것과 관련됩니다. 비디오 제작자는 np.save를 사용하여 프레임을 mp_data 폴더에 저장되는 numpy 배열로 저장하는 방법도 보여줍니다. 그런 다음 키포인트 추출을 위한 최종 코드 블록을 제공하고 프레임을 올바른 폴더에 저장합니다.

  • 01:15:00 대본의 이 섹션에서 화자는 동작 및 시퀀스(비디오)를 반복하고, 미디어 파이프 감지를 적용하고, 스타일이 지정된 랜드마크를 그리고, 특정 폴더에 저장할 다양한 키 포인트를 추출하는 데 적용되는 논리를 설명합니다. 세 가지 동작(안녕하세요, 감사합니다, 사랑합니다)을 사용하고 30개의 시퀀스에 대해 동작당 30프레임을 수집합니다. 이 코드를 실행하기 전에 오류를 다시 확인하고 글꼴이 가려지지 않도록 선 너비를 조정합니다. 코드가 실행되면 팝업에 "수집 시작"이라고 표시되며 작업을 수행할 위치에 도달하는 데 2초가 소요되며 이를 수행하는 데 30프레임이 있습니다. 코드는 데이터를 무한정 반복하고 수집할 수 있어야 합니다.

  • 01:20:00 비디오의 이 섹션에서 발표자는 Python에서 MediaPipe 및 OpenCV 라이브러리를 사용하여 수화 데이터를 수집하는 방법을 시연합니다. 발표자는 더 나은 모델 성능을 위해 다양한 각도의 손 기호 캡처를 제안하고 각각 30프레임의 30개 시퀀스가 있는 것이 잘 작동하는 경향이 있다고 언급합니다. MediaPipe가 수집한 핵심 포인트는 다양한 시나리오에서 모델의 탄력성을 높이기 위해 이미지 대신 사용됩니다. 또한 발표자는 수집된 데이터가 향후 사용을 위해 numpy 배열로 저장된다고 설명합니다.

  • 01:25:00 이 섹션에서 비디오는 LSTM 딥 러닝 모델을 위한 데이터 사전 처리 및 레이블 및 기능 생성에 중점을 둡니다. 비디오는 종속성을 가져온 다음 레이블 맵을 만드는 것으로 시작합니다. 레이블 맵은 기본적으로 각각의 다른 작업을 나타내는 사전입니다. 다음으로, 데이터를 읽어들여 90개의 배열이 있는 하나의 큰 배열로 구조화합니다. 각 배열에는 핵심 포인트를 나타내는 1662개의 값이 있는 30개의 프레임이 포함됩니다. 시퀀스와 레이블이라는 두 개의 빈 배열이 생성됩니다. 여기서 시퀀스는 기능 데이터를 나타내고 레이블은 레이블 데이터를 나타냅니다. 그런 다음 코드는 각 작업 및 시퀀스를 반복하여 해당 특정 시퀀스에 대한 모든 다른 프레임을 나타내는 창에 대한 빈 배열을 만듭니다. 마지막으로 numpy.load는 각 프레임을 로드하는 데 사용됩니다.

  • 01:30:00 이 섹션에서 화자는 데이터를 numpy 배열에 저장하고 "to_categorical" 함수를 사용하여 레이블을 하나의 핫 인코딩된 표현으로 변환하여 데이터를 사전 처리하는 프로세스를 거칩니다. 그런 다음 "train_test_split" 함수를 사용하여 데이터를 교육 및 테스트 세트로 분할합니다. 트레이닝 세트는 85개의 시퀀스로 구성되고 테스트 세트는 5개의 시퀀스로 구성됩니다. 발표자는 또한 TensorFlow 및 Keras를 사용하여 LSTM 신경망을 교육할 준비를 하면서 순차 모델, LSTM 계층 및 밀집 계층을 포함하여 필요한 종속 항목을 가져옵니다.

  • 01:35:00 이 섹션에서 발표자는 순차, lstm, dense 및 텐서보드를 포함하여 신경망을 구축하는 데 필요한 필수 종속성에 대해 논의합니다. 순차적으로 모델에 레이어를 쉽게 추가할 수 있고, lstm은 시간 분석 및 동작 감지에 사용된다고 설명합니다. 연사는 훈련 진행 상황을 모니터링하기 위해 텐서보드 콜백을 설정하는 방법도 시연합니다. 그런 다음 세 세트의 lstm 레이어를 추가하고 활성화 함수 및 입력 형태를 지정하는 신경망 아키텍처 구축을 진행합니다. 마지막으로 그들은 시퀀스를 밀집 계층으로 반환하지 않는 것의 중요성을 언급하고 추가 학습 리소스를 권장합니다.

  • 01:40:00 비디오의 이 섹션에서 발표자는 LSTM 모델에 추가된 다양한 유형의 레이어를 살펴보고 다음 세 레이어가 모두 밀집된 레이어임을 지정합니다. 각 밀집 계층은 64 및 32 밀집 단위 또는 활성화 값이 ReLU인 완전히 연결된 뉴런을 사용합니다. 마지막 계층은 softmax의 활성화 값을 사용하여 3개의 신경망 단위로 반환된 값을 추출하는 작업 계층입니다. 모델은 "Hello"와 같은 동작을 예측하고 이 출력은 30프레임과 1,662개의 핵심 포인트를 통과하고 전처리되어 동작을 추출합니다. 발표자는 수행한 연구 및 개발에 대해 논의하여 MediaPipe 및 LSTM 계층을 사용하게 된 방법을 설명합니다. 마지막으로 범주형 교차 엔트로피를 손실 함수로 사용하여 모델을 컴파일하고 지정된 에포크 수에 대해 x 기차 및 y 기차로 적합 및 훈련합니다.

  • 01:45:00 이 섹션에서 비디오는 Python으로 동작 인식을 사용하여 수화 감지를 위한 LSTM 딥 러닝 모델을 교육하는 프로세스를 보여줍니다. 이 모델은 데이터가 메모리에 맞을 수 있으므로 데이터 생성기가 필요하지 않은 MediaPipe Holistic의 모델을 사용합니다. 이 비디오는 TensorBoard로 훈련 프로세스를 설정하는 방법과 TensorBoard에서 훈련하는 동안 모델의 정확도와 손실을 모니터링하는 방법을 보여줍니다. 비디오에는 합리적인 수준의 정확도가 달성되면 훈련 프로세스를 중지하는 방법과 model.summary 함수를 사용하여 모델의 구조를 검사하는 방법도 포함되어 있습니다.

  • 01:50:00 이 섹션에서는 화자가 모델을 훈련하고 저장된 모델을 사용하여 예측합니다. 이 모델은 LSTM 딥 러닝 기술을 사용하여 수화에서 동작을 식별합니다. 이 모델은 softmax 함수를 사용하여 감지된 동작의 가장 높은 확률을 예측합니다. 예측값과 실제값을 비교하여 모델의 성능을 평가합니다. 화자는 학습된 모델을 action.h5로 저장하고 컴파일 및 로드 기능으로 다시 로드합니다. sklearn에서 메트릭을 가져오면 화자는 모델의 다중 레이블 혼동 매트릭스의 성능을 평가합니다.

  • 01:55:00 비디오의 이 섹션에서 발표자는 다중 레이블 혼동 행렬 및 정확도 점수 함수를 사용하여 훈련된 모델의 성능을 평가하는 방법을 설명합니다. 혼동 행렬은 참 긍정과 참 부정을 나타내며 왼쪽 상단과 오른쪽 하단에 있는 이러한 값의 수가 높을수록 모델의 성능이 더 좋습니다. 정확도 점수 함수는 모델의 올바른 예측 비율을 제공합니다. 그런 다음 테스트 데이터를 사용하여 훈련된 모델을 평가하고 실시간 감지를 위해 루프를 다시 설정합니다. 여기에는 감지를 위한 새 변수 생성, 프레임 연결 및 예측 논리 적용이 포함됩니다. 특정 신뢰 메트릭 이상의 결과를 렌더링하기 위해 임계값 변수도 구현됩니다.

  • 02:00:00 이 섹션에서 화자는 Python 및 LSTM 딥 러닝 모델을 사용한 동작 인식을 사용하여 수화 감지에 대한 예측 논리를 설명합니다. 핵심 포인트를 추출하고 이를 30개 프레임 시퀀스에 추가하는 것으로 시작합니다. 시퀀스의 길이가 30이면 확장된 시퀀스 차원으로 model.predict를 호출하여 예측을 실행합니다. 그런 다음 np.argmax 및 이전에 정의된 작업을 사용하여 예측된 클래스를 인쇄합니다. 화자는 시퀀스의 시작 부분에 핵심 포인트를 삽입하여 로직을 분류하고 코드에 시각화 로직을 추가합니다.

  • 02:05:00 이 섹션에서 화자는 "mp.argmax"를 사용하여 가장 높은 점수 결과를 추출하고 "res"를 통과하여 프로그램이 결과가 임계값 이상인지 확인하는 방법을 설명하는 코드를 분해합니다. 프로그램의 논리는 마지막 단어가 현재 예측과 일치하는지 확인하는 것입니다. 그렇다면 프로그램은 문장 길이에 추가하지 않습니다. 일치하지 않으면 프로그램은 현재 감지된 동작을 문장 배열에 추가합니다. 문장 길이는 프로그램이 거대한 배열을 렌더링하려고 시도하지 않도록 최대 5개 단어만 포함해야 합니다. 마지막으로 프로그램은 문장을 표시하기 위해 이미지에 텍스트와 사각형을 배치합니다.

  • 02:10:00 이 섹션에서 비디오는 Python 및 LSTM 딥 러닝 모델을 사용하여 동작 인식을 사용하여 수화를 감지하는 방법을 보여줍니다. 자습서에서는 추가 방법을 사용하도록 코드를 조정하고 더 나은 정확도를 위해 감지 임계값을 높이는 방법을 안내합니다. 이 비디오는 또한 빠른 기능으로 확률을 렌더링하여 확률 시각화를 생성하여 탐지 출력을 시각적으로 매력적으로 보이게 만드는 방법을 보여줍니다. 전반적으로 이 튜토리얼은 딥 러닝 모델을 사용하여 Python으로 수화를 감지하는 훌륭한 예를 제공하므로 유사한 프로젝트를 구축하려는 모든 사람에게 훌륭한 리소스가 됩니다.

  • 02:15:00 비디오의 이 섹션에서 발표자는 다양한 행동과 그 확률이 실시간으로 계산되는 방식을 볼 수 있는 확률 시각화 기능을 시연합니다. 이 함수는 cv2.rectangle을 사용하여 출력 프레임에 동적 사각형을 배치한 다음 현재 작업 중인 작업을 기반으로 위치를 지정하고 채웁니다. 그런 다음 cv2.put 텍스트 메서드를 사용하여 텍스트 값을 출력합니다. 발표자는 이 함수를 루프에 가져와 실시간으로 시각화하는 방법을 보여주고 확률 값을 기반으로 안녕하세요, 감사합니다, 사랑합니다와 같은 다양한 작업을 감지하고 인식하는 것을 볼 수 있습니다. 발표자는 이 기능에 대한 많은 응용 프로그램이 있음을 강조하고 다양한 시나리오에서 다양한 작업을 감지하고 인식하는 데 코드를 사용할 수 있는 방법을 보여줍니다.

  • 02:20:00 비디오의 이 섹션에서 발표자는 수화 감지 프로젝트 프로세스를 요약합니다. 그들은 수집을 위한 폴더를 설정하고, 핵심 포인트를 수집하고, 데이터를 사전 처리하고, LSTM 신경망을 구축하고, 예측하고, 실시간으로 테스트했습니다. 그들은 확률 시각화를 포함하여 실시간으로 실행되는 탐지를 효과적으로 얻을 수 있었습니다. 콜론을 이동하고 네거티브를 추가하여 올바른 프레임을 잡고 시퀀스에 추가하도록 코드를 수정한 방법에 대한 데모를 제공합니다. 그들은 또한 작업을 예측할 때 더 많은 안정성을 보장하기 위해 새로운 예측 배열에 예측을 추가하는 줄을 추가했습니다. 마지막으로 사용자가 적합하다고 생각하는 추가 작업, 색상 및/또는 시각화를 추가하여 프로젝트를 확장하고 수정할 수 있음을 제공합니다.

  • 02:25:00 이 섹션에서 발표자는 동작 감지 모델이 추가 논리를 구현하여 어떻게 더 안정적이고 탄력적이 되었는지 보여줍니다. 이 모델은 이제 잘못된 탐지를 최소화하고 더 오랜 기간 동안 탐지를 유지하여 정확도를 향상시킬 수 있습니다. 연사는 또한 사용자가 활용할 수 있도록 모델에 대해 훈련된 가중치를 GitHub 리포지토리에서 사용할 수 있다고 언급합니다. 비디오는 비디오에 좋아요를 누르고 채널을 구독하라는 초대로 끝납니다.
GitHub - nicknochnack/ActionDetectionforSignLanguage: A practical implementation of sign language estimation using an LSTM NN built on TF Keras.
GitHub - nicknochnack/ActionDetectionforSignLanguage: A practical implementation of sign language estimation using an LSTM NN built on TF Keras.
  • nicknochnack
  • github.com
A practical implementation of sign language estimation using an LSTM NN built on TF Keras. - GitHub - nicknochnack/ActionDetectionforSignLanguage: A practical implementation of sign language estim...
 

2022/23 겨울 학기에 튀빙겐 대학에서 기계 학습의 수치. 강의 1 - 소개 -- Philipp Hennig



ML의 수치 1 -- 소개 -- Philipp Hennig

이 비디오에서 Philipp Hennig는 기계 학습에서 수치 알고리즘을 이해하는 것의 중요성에 대해 논의하고 용어에 대한 과정 내용을 소개합니다. 다루는 첫 번째 수치 알고리즘은 가우시안 프로세스 회귀에 적용되는 선형 대수학입니다. Hennig는 또한 기계 학습에서 시뮬레이션, 미분 방정식, 통합 및 최적화의 역할에 대해서도 논의합니다. 그는 알고리즘 척추, 관찰 가능 항목 및 확률적 수치 알고리즘과 같은 수치 알고리즘의 새로운 발전을 소개합니다. 비디오 전체에서 Hennig는 복잡한 문제를 해결하기 위해 기계 학습에 사용되는 기존 알고리즘을 업데이트하는 것의 중요성을 강조하고 이 컴퓨터 과학 수업에서 코드 작성의 역할을 강조합니다.

Philipp Hennig는 기계 학습 알고리즘이 상자 내에서 어떻게 기능하고 학습 기계를 개선하기 위해 어떻게 조정하거나 변경할 수 있는지 탐구하는 것을 목표로 하는 기계 학습의 수치에 대한 과정을 소개합니다. 수치 알고리즘 및 기계 학습 알고리즘에 대한 고도의 기술 지식은 연구원 및 업계 전문가가 많이 찾고 있습니다. 이 과정은 이론 및 코딩 작업으로 구성되며 과제는 바이너리 시스템에서 채점됩니다. Hennig는 기계 학습에서 수치 알고리즘의 중요성을 강조하고 9명의 다른 강사와 함께 이 독특한 교육 실험에 학생들을 초대합니다.

  • 00:00:00 이 섹션에서 Philipp Hennig는 기계 학습에서 수치 알고리즘 이해의 중요성을 소개합니다. 기계 학습 알고리즘은 데이터를 입력으로 받아 세상에서 예측하거나 행동하는 모델을 생성하지만 실제 학습 프로세스에는 수치 계산이 포함됩니다. 기존 AI 알고리즘과 달리 현대 기계 학습 알고리즘은 선형 대수, 시뮬레이션, 통합 및 최적화 방법과 같은 수치 알고리즘을 이러한 계산의 기본 요소로 사용합니다. Philipp은 수치 알고리즘을 폐쇄형 솔루션이 없고 항상 작동하는 원자 연산과 달리 잘못될 수 있는 수학적 수량을 추정하는 방법으로 정의합니다. 수치 알고리즘은 머신 러닝의 중심이므로 올바르게 작동하도록 이해하는 것이 중요합니다.

  • 00:05:00 이 섹션에서 화자는 정규 함수와 수치 알고리즘의 차이점에 대해 논의하며 후자는 자체 라이브러리와 선택할 수 있는 여러 서브루틴이 있는 경향이 있음을 언급합니다. 그런 다음 그는 1975년에 두 명의 수학자에 의해 발명된 알고리즘을 구현하여 1993년에 Forth 언어로 작성된 프로토타입 수치 알고리즘의 예를 제공합니다. 이것은 수치 알고리즘이 오래되었고 정확한 인터페이스를 가지고 있어 수정하기 어렵다는 사실을 강조합니다. 기계 학습 엔지니어는 수치 작업을 자주 접하고 다른 분야에서 개발한 이러한 오래된 알고리즘을 활용할 수 있었지만 당면한 작업이 방법의 기능과 정확하게 일치하지 않는 경우 문제가 될 수 있습니다. 화자는 기존의 수치적 방법으로는 충분하지 않은 문제를 해결하려고 할 때 이것이 기계 학습에서 문제가 될 수 있다고 제안합니다.

  • 00:10:00 이 섹션에서 Philipp Hennig는 수치 알고리즘의 주제와 용어에 대한 코스 내용을 소개합니다. 기계 학습의 기본 계층인 선형 대수는 그들이 다루는 첫 번째 수치 알고리즘입니다. 적용 사례는 사후 평균 및 사후 공분산 함수라는 두 가지 함수가 추론에 사용되는 가우시안 프로세스 회귀에 있습니다. 이러한 함수는 커널 방법을 사용하여 정의되며 구현에는 역행렬을 계산하는 대신 Cholesky 분해 방법이 포함됩니다. Hennig는 또한 Python 코드 스니펫을 소개하고 역행렬을 계산하는 대신 Cholesky 분해를 사용해야 하는 이유를 설명합니다.

  • 00:15:00 비디오의 이 섹션에서 발표자 Philipp Hennig는 커널 머신의 문제, 특히 대량의 데이터로 확장할 수 없는 것과 관련하여 논의합니다. 그는 커널 기계에 필요한 값비싼 계산으로 인해 현대 기계 학습에 사용하기 어렵다고 설명합니다. 그러나 Hennig는 또한 데이터 세트 구조 및 근사를 활용하여 계산 속도를 높이는 데 사용할 수 있는 다른 선형 대수 알고리즘이 있으며 궁극적으로 대규모 데이터 세트로 확장되는 가우시안 프로세스 회귀 솔루션을 제공한다고 제안합니다.

  • 00:20:00 이 섹션에서 Philipp Hennig는 시뮬레이션 알고리즘과 기계 학습에서의 역할을 소개합니다. 시뮬레이션 방법은 시간이 지남에 따라 동적 시스템의 궤적을 시뮬레이션하고 X를 추정할 수 있습니다. 자율 주행 자동차와 같은 에이전트를 구축할 때 또는 과학과 같은 물리적 통찰력을 활용하는 기계 학습 알고리즘을 만들 때 기계 학습에 나타납니다. 기계 학습. 슈뢰딩거 방정식과 같은 미분 방정식은 일반적으로 자연에 대한 지식을 인코딩하는 데 사용됩니다. 또한 Hennig는 심층 신경망과 가우시안 프로세스가 이 문제를 해결하는 데 작동하지 않는 이유를 설명하기 위해 1년 반 동안 독일의 COVID-19 사례에 대한 간단한 예측 문제의 예를 제공합니다.

  • 00:25:00 이 섹션에서 Philipp Hennig는 모델링 시스템, 특히 시뮬레이션에서 일반적으로 사용되는 SIR 모델의 미분 방정식 사용과 잠금과 같은 실제 역학을 이러한 모델에 통합하는 문제에 대해 설명합니다. 그는 신경망을 사용하여 계수 베타를 시간 종속적으로 만들 것을 제안하지만 코드에 도함수가 없기 때문에 그렇게 하는 것이 어렵다는 점을 지적합니다. 그러나 그는 이 문제를 해결하는 Jax 알고리즘의 최근 개발을 강조합니다.

  • 00:30:00 이 섹션에서 Philipp Hennig는 복잡한 문제를 해결하는 현재 방식인 시뮬레이션 기반 추론이라는 알고리즘에 대해 설명합니다. 이 알고리즘에는 함수 f를 여러 번 평가하고 기울기를 반환하고 기울기 하강 단계를 수행하는 중첩된 for 루프가 포함됩니다. Hennig는 이 기본 코드보다 더 유연하고 빠른 알고리즘을 만들기 위해 절차적 방식으로 Photon 코드 내부에 숫자 목록을 구성하고 이를 적응시키는 자체 방법을 구축할 수 있다고 설명합니다. 이 방법은 알 수 없는 요소에 대해 알고리즘에 알리기 위해 확률 분포 및 정보 연산자와 같은 연산자를 매달 수 있는 Markov 체인의 스파인을 포함합니다. 이렇게 하면 시간이 많이 걸리는 외부 루프에서 for 루프를 반복해서 호출하지 않고도 이러한 문제를 해결할 수 있습니다.

  • 00:35:00 이 섹션에서 Philipp Hennig는 100년 이상 된 기계 학습에 사용되는 기존 알고리즘 업데이트의 중요성에 대해 설명합니다. 그는 다양한 정보 연산자에서 작동하고 새로운 기능을 생성할 수 있는 알고리즘 스파인의 아이디어를 소개합니다. 그런 다음 Hennig는 환자 추론의 기본 작업인 기계 학습에서 통합의 역할에 대해 논의합니다. 확률론적 기계 학습의 기본 연산은 결합 분포를 취하여 적분을 포함하는 주변 분포로 나누어 사후 분포를 계산하는 것입니다. 마지막으로 Hennig는 손실 함수를 최소화하는 컴퓨팅 값과 관련된 기계 학습의 기본 작업인 최적화의 중요성에 대해 논의합니다. 이러한 알고리즘은 함수의 기울기를 자동으로 계산할 수 있는 미분 가능 프로그램의 기초를 형성합니다.

  • 00:40:00 이 섹션에서는 Philipp Hennig가 기계 학습에서 최적화 알고리즘과 알고리즘의 중요성에 대해 설명합니다. BFGS 및 최소화와 같은 고전적인 방법은 scipy.optimize에 저장되지만 SGD 및 Adam과 같은 새로운 방법은 이제 기계 학습의 표준입니다. 그러나 이러한 방법은 최소 수준으로 수렴하고 미분 가능한 모든 문제에 대해 작업할 수 있는 이전 방법과 달리 학습 속도와 많은 감독이 필요한 경우가 많습니다. 수백만 개의 데이터 포인트가 있는 대규모 데이터 세트에 대한 이러한 새로운 방법의 한계를 처리하기 위해 배치 경사 하강법을 사용하여 훨씬 더 작은 합계를 계산합니다. 더 효율적이고 효과적이지만 여전히 이전 알고리즘과 동일한 원칙을 기반으로 하므로 특정 응용 프로그램에 문제가 발생할 수 있습니다.

  • 00:45:00 비디오의 이 섹션에서 연사는 딥 러닝 알고리즘의 그래디언트 외에도 분산 계산 가능성에 대해 논의합니다. 그는 최적화 과정에서 분산 계산을 생략한 것은 최적화가 여전히 일반화를 잘 하는 점을 찾기 위해 무작위 변수를 사용하는 문제가 아니라 그래디언트 계산 문제로 간주되기 때문이라고 주장합니다. 그러나 그는 계산의 무작위성으로 인해 발생하는 불확실성을 포함하는 것의 중요성을 강조하며 심층 신경망을 위한 더 나은 훈련 설정을 구축하는 데 필수적이라고 지적합니다. 그는 이 주제를 더 깊이 파고들 예정인 강의를 언급하며 결론을 내립니다.

  • 00:50:00 이 섹션에서 Philipp Hennig는 Observable을 사용하여 불확실성과 같은 심층 신경망에 새로운 기능을 추가하거나 값비싼 Markov 체인 Monte Carlo 알고리즘을 사용하지 않고 Bayesian 심층 신경망으로 만드는 방법에 대해 설명합니다. 그는 또한 기계 학습 알고리즘을 훈련하는 데 사용되는 수치 알고리즘이 어떻게 실제로 기계 학습 알고리즘 자체인지 설명합니다. 다루기 쉽고 관찰 가능한 데이터를 관찰하면서 미지의 양이나 잠재 변수를 추정하기 때문입니다. 이는 계산에서 관찰된 결과를 기반으로 잠재량을 추정하는 추론 프로세스와 유사합니다.

  • 00:55:00 이 섹션에서 Philipp Hennig는 수치 알고리즘의 개념을 학습 기계로 소개하고 처음부터 수치 알고리즘을 확률적 수치 알고리즘으로 구축하는 아이디어에 대해 논의합니다. 이들은 작업을 설명하는 확률 분포를 취하고 CPU 또는 GPU를 데이터 소스로 사용하여 수치 작업에 대한 솔루션이 무엇인지에 대한 추정치를 구체화하는 알고리즘입니다. Hennig는 내부의 기계를 학습 기계로 이해하고 기계 학습 언어로 새로운 알고리즘을 구축하는 데 중점을 두기 때문에 수업이 일반적인 수치 분석 수업이 아니라고 강조합니다. 학생들은 이 컴퓨터 과학 수업에서 많은 코드를 작성할 것으로 예상할 수 있습니다.

  • 01:00:00 이 섹션에서 Philipp Hennig는 기계 학습의 수치에 대한 자신의 과정을 소개합니다. 그는 이 과정이 세계 최초의 전용 과정이라고 주장합니다. 이 과정은 기계 학습 알고리즘의 작동 방식, 특히 상자 내에서 작동하는 방식과 학습 기계를 개선하기 위해 알고리즘을 변경하거나 조정할 수 있는 방법을 탐구하는 것을 목표로 합니다. 수치 알고리즘과 기계 학습 알고리즘의 고도의 기술적 특성은 이 분야의 지식이 연구원과 업계 전문가 모두에게 많이 요구된다는 것을 의미합니다. 강의는 이러한 알고리즘의 내부 작동에 대해 연구하고 생각하는 데 수년을 보냈기 때문에 교수보다 더 미세한 기술적 세부 사항을 논의할 수 있는 고도로 숙련된 박사 과정 학생 팀이 진행합니다.

  • 01:05:00 이 섹션에서는 Philipp Hennig가 과정의 구조와 과정 요구 사항에 대해 설명합니다. 학생들은 Python 또는 Julia 코드를 사용하여 수치 문제를 해결해야 하므로 이 과정에는 이론 및 코딩 작업이 모두 포함됩니다. 연습 문제는 솔루션이 바이너리 기준으로 평가되는 PDF로 제출됩니다. 좋은 솔루션에는 체크 표시가, 만족스럽지 않은 솔루션에는 십자 표시가 주어집니다. 학생들은 최종 시험 결과에 합산되는 각 눈금에 대해 보너스 포인트를 받게 됩니다. 시험은 내년 2월 13일 또는 3월 31일에 실시되며, 재설정이 불가능할 수 있으므로 첫 번째 시험에 합격하는 것이 좋습니다. 마지막으로, 기계 학습 또는 데이터 중심 계산에서 수치 알고리즘에서 더 높은 학위를 달성하는 데 관심이 있는 학생들은 다양한 분야에서 응용 연구를 위한 충분한 기회를 제공하므로 이 과정을 수강하는 것이 좋습니다.

  • 01:10:00 이 섹션에서 Philipp Hennig는 머신 러닝에서 수치 알고리즘의 중요성을 강조하며 수치 알고리즘이 러닝 머신을 구동하는 엔진이라고 설명합니다. 그는 이러한 알고리즘과 베이지안 추론 언어를 이해하면 어떻게 더 빠르고 안정적이며 사용하기 쉬운 기계 학습 솔루션으로 이어질 수 있는지 설명합니다. Hennig는 고전적인 수치 알고리즘이 중요하지만 시뮬레이션과 심층 학습을 보다 전체적인 방식으로 통합하기 위한 수단으로 학습 기계의 관점을 채택하여 기계 학습의 렌즈를 통해 보아야 한다고 강조합니다. 그는 9명의 다른 강사로 구성된 고유한 설정을 통해 기계 학습을 가르치는 이 흥미진진한 실험에 학생들을 초대합니다.
 

강의 2 - 수치 선형 대수 - Marvin Pförtner



ML 2의 수치 -- 수치 선형 대수 -- Marvin Pförtner

수치 선형 대수는 기계 학습, 가우시안 프로세스 및 기타 비모수 회귀 방법의 기본입니다. 보다 효율적인 곱셈을 위한 행렬의 구조 이해의 중요성, 하이퍼파라미터 선택 문제 해결 및 커널 행렬 계산을 통한 기계 학습 알고리즘의 최적화, 특히 LU 분해. 강의는 또한 수학 연산에 사용되는 알고리즘이 성능, 안정성 및 메모리 소비에 상당한 영향을 미치기 때문에 알고리즘을 올바르게 구현하는 것의 중요성을 강조합니다.

비디오의 두 번째 부분에서 Marvin Pförtner는 기계 학습 알고리즘에서 수치 선형 대수학의 중요성에 대해 설명합니다. 그는 LU 분해, Cholesky 분해, 행렬 반전 보조 정리 및 가우시안 프로세스 회귀를 포함한 다양한 주제를 다룹니다. Pförtner는 알고리즘을 보다 효율적으로 만들기 위해 구조를 활용하는 것의 중요성을 강조하고 가우시안 프로세스 회귀에서 대규모 방정식 시스템을 풀 때 수치 안정성의 중요성을 강조합니다. 또한 대규모 데이터 세트를 처리하기 위한 활성 학습 및 낮은 순위 근사와 같은 기술과 커널 행렬의 잠재적인 메모리 제한에 대해서도 설명합니다. 전반적으로 이 비디오는 기계 학습의 여러 측면에서 수치 선형 대수가 수행하는 중요한 역할을 보여줍니다.

  • 00:00:00 이 섹션에서는 박사 과정 학생이 기계 학습 및 가우시안 프로세스에서 수치 선형 대수학의 중요성에 대해 논의합니다. 수치 선형 대수는 기계 학습의 기본이며 알고리즘을 구현하는 데 필요한 도구 세트입니다. 강의는 기계 학습에 중요한 수치 선형 대수학의 기본 작업, 수치 선형 대수 알고리즘을 빠르고 안정적으로 만들기 위한 구조 탐색 및 가우시안 프로세스 회귀를 올바르게 구현하는 방법을 다룹니다. 강의는 또한 기본 확률 이론, 일반 선형 모델, 주성분 분석 및 차원 감소를 수행하는 행렬-벡터 곱과 같은 수치 선형 대수학의 응용 사례를 인용합니다.

  • 00:05:00 이 섹션에서 연사는 기계 학습의 맥락에서 수치 선형 대수에 대해 논의합니다. 그는 기계 학습의 비모수적 회귀 방법인 가우시안 프로세스가 사전 확률 측정에 어떻게 의존하는지 설명합니다. 사전 확률 측정은 대칭 및 양의 명확한 커널 그람 행렬을 생성하는 가우시안 프로세스입니다. 이 매트릭스의 생성 정보는 효율적이고 신뢰할 수 있는 알고리즘을 허용합니다. 발표자는 또한 커널 방법 및 Ridge 회귀를 포함하여 더 큰 종류의 모델에 유사한 방정식이 어떻게 적용되는지 언급합니다. 그는 또한 수치 선형 대수학이 선형 편미분 방정식을 풀고 손실 함수의 로컬 최적화를 위한 최적화 방법에 사용되는 방법에 대해 간략하게 설명합니다.

  • 00:10:00 이 섹션에서 연사는 기계 학습에서 선형 대수의 중요성에 대해 논의하고 이러한 중요성을 설명하는 예를 제공합니다. 행렬 벡터 곱셈, 선형 시스템 솔루션 및 행렬 분해와 같은 선형 대수 연산은 많은 기계 학습 모델의 기본입니다. 또한 그는 많은 기계 학습 모델이 선형 시스템 해결을 목표로 하는 행렬의 노이즈 추정치를 사용하기 때문에 실제로 노이즈가 많다고 지적합니다. 마지막으로 그는 최대 사후 추정치를 얻기 위해 가우시안 밀도 사례 및 GP 회귀에서 대수 결정 요인이 필수적임을 강조합니다.

  • 00:15:00 이 섹션에서 발표자는 수치 선형 대수 및 기계 학습에서 효율적인 행렬 벡터 곱셈의 중요성을 강조합니다. 그들은 수학적 표현이 알고리즘으로 적절하게 변환되지 않으면 간단한 작업조차도 계산적으로 불가능해질 수 있는 방법에 대한 예를 제공합니다. 연사는 또한 보다 효율적인 곱셈을 위해 매트릭스에서 구조를 식별하는 것의 중요성을 강조합니다. 그들은 수학 연산을 구현하는 알고리즘이 성능, 안정성 및 메모리 소비에 상당한 영향을 미친다고 말하면서 결론을 내립니다.

  • 00:20:00 이 섹션에서 연사는 기계 학습 알고리즘을 최적화하기 위해 행렬의 구조를 이해하는 것이 중요함을 강조합니다. 그는 행렬 내에 더 낮은 순위 구조가 있다는 것을 안다면 전체 행렬을 곱하는 대신 더 낮은 행렬에 특화된 방법을 사용하여 인수분해해야 한다고 설명합니다. 그는 낮추는 것은 구조의 한 유형일 뿐이며 0이 아닌 항목과 회귀자의 입력 차원에 의존하는 희소 행렬 및 커널 행렬과 같은 다양한 행렬 구조가 있다고 설명합니다. 연사는 또한 메모리 절약을 위해 커널 매트릭스를 저장하는 방법에 대해서도 다룹니다.

  • 00:25:00 이 섹션에서 발표자는 가우스 프로세스에 대한 커널 행렬을 효율적으로 저장하고 평가하는 방법에 대해 설명합니다. 데이터 포인트가 특정 제한을 초과하면 메모리 문제로 인해 데이터 포인트를 저장하는 순진한 접근 방식이 더 이상 실현 가능하지 않습니다. 매우 효율적인 CUDA 커널을 작성하고 GPU를 사용하여 수십만 개의 데이터 포인트를 사용하여 랩톱에서 가우시안 프로세스를 계산하는 라이브러리가 있습니다. 발표자는 또한 동일한 시간 및 공간 요구 사항을 필요로 하는 auto-diff 그래프와 같은 일반적인 기능 형식의 행렬에 대해 이야기합니다. 마지막으로 연사는 베이지안 회귀를 가우시안 프로세스에 적용하는 구체적인 알고리즘을 탐구합니다. 여기서 가우시안 측정값의 핵심은 알 수 없는 함수의 공분산입니다. 화자는 관찰된 데이터와 불확실성 정량화가 어떻게 잘 작동하는지와 함께 함수에 대한 사후 측정의 플롯을 제시합니다. 그러나 역함수를 계산할 때 문제가 발생합니다. 이 역함수는 규모가 상당히 커서 n개의 데이터 포인트에서 커널 그램 행렬을 계산하는 순진한 접근 방식을 큰 n에 대해 실행할 수 없게 만듭니다.

  • 00:30:00 이 섹션에서 발표자는 엄청나게 비용이 많이 들 수 있는 가우시안 프로세스에서 커널 행렬 계산의 수치적 복잡성에 대해 논의합니다. 또한 관찰된 데이터 세트를 설명하기 위해 사전을 최적화하기 위해 출력 스케일 및 길이 스케일과 같은 커널에 대해 조정해야 하는 하이퍼파라미터가 있습니다. 발표자는 로그 한계 우도를 계산하고 가우시안 분포의 정규화 계수로 표시되는 모델 적합성과 복잡성 사이의 균형으로 구성된 손실 함수를 최소화하여 이 모델 선택 문제를 해결하기 위한 베이지안 접근 방식을 설명합니다. 발표자는 심각한 과소적합 및 과적합의 예를 보여주고 최상의 모델 성능을 달성하기 위해 이 두 용어 사이의 절충점을 찾을 수 있는 방법을 설명합니다.

  • 00:35:00 이 섹션에서는 Marvin Pförtner가 선형 시스템의 솔루션에 대해 설명합니다. 솔루션에는 M + 1이 필요합니다. 여기서 M은 회귀자를 평가하려는 데이터 포인트의 수입니다. 시스템은 가장 일반적인 경우에 대칭적이고 양의 정부호이지만 일반적으로 시스템이 거대하고 매우 큰 데이터 세트에 대해서는 이를 해결할 수 없기 때문에 활용할 추가 구조가 있을 수 있습니다. 매우 중요한 행렬 분해 중 하나는 Lu 분해입니다. 하부 삼각 시스템을 푸는 데 사용되는 알고리즘은 행렬을 네 부분으로 분해하는 정방향 대체입니다. 즉, 오른쪽 하단의 스칼라, 그 위의 열은 0, 왼쪽의 행 벡터, L 빼기 li이라는 또 다른 삼각형 부분입니다. 위의 마이너스 1, 이것은 또한 낮은 삼각형입니다.

  • 00:40:00 이 섹션에서 Marvin Pförtner는 차원 n에서 1을 뺀 하부 삼각 행렬인 시스템을 푸는 방법에 대해 설명합니다. 마지막 행을 분리하면 간단한 알고리즘을 사용하여 시스템을 해결할 수 있습니다. 그런 다음 재귀 방법을 사용하여 주어진 차원에 대한 시스템을 해결합니다. Pförtner는 Lu 분해(나누기 및 정복자 기술을 사용하는 재귀 정의)라고 부르는 것을 사용하여 행렬을 하부 및 상부 삼각 부분으로 분할하는 방법도 설명합니다. 이 기술은 O(N^3) 대신 O(N^2)가 되는 프로세스를 사용하여 행렬을 반전하고 선형 시스템의 해결 비용을 줄이는 데 유용합니다.

  • 00:45:00 이 섹션에서는 방정식의 선형 시스템을 풀기 위한 Lu 분해 방법에 대해 설명합니다. 이 방법은 행렬을 하위 삼각 행렬과 상위 삼각 행렬로 분해하여 선형 시스템에 대한 해를 더 빠르게 계산할 수 있도록 합니다. 이 프로세스에는 하부 삼각 행렬의 왼쪽 부분의 대각선 항목을 1로 설정하고 부분 피벗을 사용하여 안정성과 견고성을 보장하는 작업이 포함됩니다. 방법의 효율성에도 불구하고 계산 비용인 O(n^3)을 고려해야 합니다.

  • 00:50:00 이 섹션에서 Marvin Pförtner는 UD 분해의 계산 시간에 대해 설명하고 이를 구현하는 방법을 시연합니다. 그는 각 재귀 단계의 가장 큰 부분이 외적과 빼기의 계산이며, 그 결과 2배(n-1) 제곱 이상의 합이 나온다고 설명합니다. 이 알고리즘은 가우시안 소거법으로 알려진 전략을 사용하여 상위 삼각 행렬을 효율적으로 계산합니다. Pförtner는 L의 중요하지 않은 부분이 대각선 아래의 세 항목에 포함되고 위쪽 삼각형 부분에 U의 0이 아닌 부분이 포함됨을 보여 주는 작은 행렬을 사용하여 예제 계산을 수행하는 방법을 보여줍니다. 메모리에서 Pförtner는 L과 U를 동일한 매트릭스에 영리하게 저장하는 구현을 제시합니다.

  • 00:55:00 이 섹션에서는 화자가 수치 선형 대수학에서 LU 분해 과정을 설명합니다. 그는 알고리즘을 단계별로 계산하는 방법과 이를 사용하여 선형 시스템을 해결하는 방법을 보여줍니다. 행렬의 LU 분해가 있으면 우변이 여러 개인 다중 선형 시스템을 효율적으로 해결하는 데 적용할 수 있으며 한 번 정방향 및 역방향 대체에 대해 2N 제곱의 비용만 듭니다. 순열 행렬의 역행렬은 전치일 뿐이며 계산 비용이 저렴하여 가우시안 프로세스 회귀에서 동일한 시스템 행렬로 K개의 해결을 수행할 수 있습니다.

  • 01:00:00 이 섹션에서 발표자는 계산적으로 효율적인 LU 분해를 사용하여 동일한 행렬로 여러 선형 시스템을 효율적으로 해결하는 방법에 대해 논의합니다. 또한 LU 분해로 로그 결정자를 계산하는 방법이 제시되어 선형 시스템을 효율적으로 표현하고 다양한 선형 대수 작업을 수행할 수 있습니다. 발표자는 알고리즘을 보다 효율적으로 만들기 위해 구조를 활용하는 것의 중요성을 강조하고 Cholesky 분해가 커널 그램 행렬의 대칭 및 양의 명확한 특성을 활용하는 LU 분해의 특수 버전이라고 언급합니다.

  • 01:05:00 이 섹션에서 발표자는 가우시안 프로세스의 사후 평균 및 공분산 계산에 대해 설명합니다. 사후 평균을 얻으려면 한 시스템은 전방 대체로 풀고 다른 시스템은 후방 대체로 풀어야 합니다. 화자는 공분산 행렬의 촐레스키 요인 구조를 사용하여 행렬에 대한 근사치를 낮추는 좋은 결과를 얻을 수 있다고 말합니다. 또한 그는 잠재적으로 큰 커널 행렬을 메모리에 맞출 수 없는 문제에 대해 이야기하고 이 문제를 해결하기 위한 두 가지 접근 방식을 제시합니다. 사용된 커널의 구조를 사용하거나 희소 근사치를 사용합니다.

  • 01:10:00 이 섹션에서 연사는 기계 학습 알고리즘에서 행렬을 효율적으로 반전하는 방법에 대해 설명합니다. 그는 정현파 함수에서 생성된 데이터 세트를 예로 사용하고 데이터 세트의 생성 구조를 알면 해당 지식을 반영하고 계산적으로 효율적인 커널을 선택할 수 있음을 보여줍니다. Matrix Inversion Lemma는 적은 수의 하위 공간으로 행렬을 교란시켜 행렬을 효율적으로 반전시키는 데 사용할 수 있는 도구입니다. 이 기본형을 사용하면 식을 매우 효율적으로 계산할 수 있으며 전체 행렬을 메모리에 구성할 필요도 없습니다. 연사는 기계 학습 알고리즘에서 구조를 사용하는 데 다양한 접근 방식이 있음을 강조합니다.

  • 01:15:00 이 섹션에서 강사는 기계 학습에서 가우시안 추론 및 하이퍼파라미터 최적화에 사용되는 수치 선형 대수 방법에 대해 설명합니다. GP(Gaussian process) 회귀를 큰 데이터 세트로 스케일링하는 한 가지 방법은 커널 행렬에 표시된 시스템 행렬에 대한 낮은 순위 근사값의 반복 구성을 포함하는 근사 반전입니다. 강사는 Cholesky 알고리즘을 예로 사용하여 이 방법을 시연하고 전체 Cholesky 분해를 계산하지 않고 행렬에 대한 낮은 순위 근사기를 즉시 얻을 수 있는 방법을 보여줍니다. 근사치의 품질은 커널 행렬과 데이터 포인트가 처리되는 순서에 따라 다릅니다. 전반적으로 이 섹션에서는 기계 학습의 다양한 측면에서 수치 선형 대수학의 중요성을 강조합니다.

  • 01:20:00 이 섹션에서 Marvin Pförtner는 Cholesky가 처리하는 데이터 포인트의 순서를 선택하여 커널 매트릭스를 근사화하는 방법에 대해 설명합니다. 그는 전체 피벗화 또는 피벗된 Cholesky 분해라고도 하는 순열 매트릭스와 그램 매트릭스를 미리 곱하면 더 적은 반복으로 더 낮은 근사값을 얻을 수 있다고 설명합니다. 아이디어는 Todeschini를 한 번 반복한 후 데이터 점에 대한 예측자를 관찰한 다음 수집된 정보를 사용하여 다음 반복에서 관찰할 데이터 점을 선택하는 것입니다. 이 기술은 활성 학습 문제로 간주되며 행과 열을 동시에 처리하는 영리한 방법을 제공하여 온라인 방식으로 매트릭스의 생성 구조를 탐색할 수 있습니다.

  • 01:25:00 이 섹션에서 발표자는 SVD(Singular Value Decomposition)와 행렬 근사를 위한 최적의 요소를 얻기 위해 최적화 문제를 해결하는 방법에 대해 설명합니다. 그러나 SVD를 자르는 것은 임의로 좋지 않을 수 있으므로 휴리스틱 접근 방식을 사용하여 SVD를 근사하고 고유 분해를 계산합니다. Cholesky 분해를 통해 얻을 수 있는 행렬 제곱근도 필요합니다. 실제로 수치 선형 대수 알고리즘을 구현할 때 구조를 고려하는 것이 중요합니다. 이렇게 하면 프로세스 속도를 크게 높일 수 있기 때문입니다.

  • 01:30:00 이 섹션에서 Marvin Pförtner는 수치 선형 대수학의 구조가 가우시안 프로세스 회귀에 미치는 영향에 대해 설명합니다. 가우시안 프로세스 회귀는 계산 집약적이며 수치 선형 대수 기술을 사용하여 수행할 수 있는 대규모 방정식 시스템을 해결해야 합니다. 발표자는 최종 결과에서 정확성을 잃지 않도록 이러한 방정식 시스템을 풀 때 수치적 안정성의 중요성을 강조합니다.
 

강의 3 -- 가우시안 프로세스 스케일링 -- 조나단 웽거



ML 3의 수치 -- 가우시안 프로세스 스케일링 -- 조나단 벵거

Jonathan Wenger는 "Numerics of ML 3" 비디오에서 대규모 데이터 세트에 대한 가우시안 프로세스를 확장하는 기술에 대해 설명합니다. 그는 일반화, 단순성/해석성, 불확실성 추정 및 속도 달성이라는 주요 목표를 가지고 선형 시스템을 풀고 역행렬을 학습하는 반복적인 방법을 탐구합니다. Wenger는 반복 촐레스키 분해, 부분 촐레스키 및 켤레 기울기 방법과 같은 커널 행렬에 대한 낮은 순위 근사를 도입했습니다. 또한 대규모 데이터 세트를 처리할 때 수렴을 가속화하고 안정성을 개선하기 위한 사전 조건에 대해 설명합니다. 마지막으로 그는 직교 행렬 Z를 사용하여 행렬의 자취를 재작성할 것을 제안합니다. 이는 잠재적으로 가우시안 프로세스를 스케일링하기 위한 2차 시간으로 이어질 수 있습니다.

강의의 두 번째 부분에서 Jonathan Wenger는 이 비디오의 대규모 데이터 세트에 대한 가우시안 프로세스(GP) 스케일링에 대해 설명합니다. 그는 선형 시스템 해결을 위한 기존 선조건자를 사용하여 커널 행렬과 그 역수를 추정하는 것을 포함하여 GP 회귀에 대한 Monte Carlo 추정의 수렴률을 개선하기 위한 다양한 전략을 제시합니다. 그는 또한 변동 근사를 통해 선형 시간 GP의 아이디어를 소개하고 유도점 방법을 사용하여 불확실성 정량화를 해결합니다. 이러한 전략을 사용하면 GPU에서 최대 100만 개의 데이터 포인트가 있는 데이터 세트로 확장할 수 있어 하이퍼파라미터를 빠르고 쉽게 최적화할 수 있습니다.

  • 00:00:00 비디오의 이 섹션에서 Jonathan Wenger는 선형 시스템을 해결하기 위해 반복적인 방법을 사용하여 대규모 데이터 세트에 대한 가우시안 프로세스를 확장하는 방법에 대해 설명합니다. 그는 이러한 방법이 GP 후방을 계산하는 데 필요한 기본 개체인 역행렬에 대한 학습 알고리즘으로 볼 수 있다고 설명합니다. Wenger는 또한 일반화, 단순성/해석 가능성, 불확실성 추정 및 속도를 포함하여 회귀의 주요 목표를 설명합니다. 그는 GP가 이러한 목표를 모두 달성할 수 있는 모델의 대표적인 예이지만 훈련하고 추론하는 데 비용이 많이 든다고 지적합니다. 그러나 커널 행렬을 사용하여 선형 시스템을 해결하는 최신 방법을 개발함으로써 GPS에 대한 2차 시간 추론을 3차 시간보다 빠르게 수행할 수 있습니다. Wenger는 또한 선형 시간에서 이를 훨씬 더 빠르게 수행할 수 있는 방법이 있음을 암시하지만 다음 강의에서 더 자세히 논의할 몇 가지 단점이 있을 수 있음을 인정합니다.

  • 00:05:00 이 섹션에서 발표자는 대규모 데이터 세트를 처리할 때 시간 및 공간 복잡성 측면에서 금지되기 때문에 가우시안 프로세스에 대한 Scholesky 분해의 한계에 대해 설명합니다. 그는 반복적인 Cholesky가 커널 매트릭스의 낮은 순위 근사에 사용되는 방법을 보여주면서 데이터 포인트의 수를 제곱하는 복잡성을 줄이기 위한 반복적인 방법을 제안합니다. 그러나 문제는 커널 행렬 자체를 근사화하는 것이 아닙니다. GP 회귀에는 커널 행렬 또는 정밀도 행렬의 역 근사화가 필요하므로 문제는 Cholesky의 반복 공식이 정밀도에 대한 근사치로 해석될 수 있는지 여부입니다. 선형 해석을 위한 행렬.

  • 00:10:00 이 섹션에서 발표자는 커널 행렬에 대한 낮은 순위 근사에 사용할 수 있는 촐레스키 분해의 반복 형식을 탐색합니다. 추가 수량을 추적하면 Cholesky와 유사하게 낮은 순위인 행렬에 대한 역근사를 얻을 수 있습니다. 화자는 촐레스키 인수 및 잔차 측면에서 이 역근사를 재귀적으로 계산하는 방법을 보여줍니다. 이 반복 방법은 커널 행렬과 같은 양의 정부호 행렬에 대한 근사 행렬 반전 알고리즘으로 사용할 수 있으며 가우시안 프로세스를 확장하는 데 유용한 도구입니다.

  • 00:15:00 이 섹션에서 발표자는 가우시안 프로세스를 확장하기 위한 부분 촐레스키 방법의 사용에 대해 설명합니다. 이 방법은 촐레스키 분해를 인수로 수정하고 이를 벡터와 곱하는 작업을 포함합니다. 그 결과 벡터의 외부 곱을 추가하여 역근사를 생성하는 반복 프로세스가 발생합니다. 복잡성 분석은 행렬 자체를 근사화하는 것과 마찬가지로 비용이 많이 든다는 것을 보여줍니다. 연사는 또한 부분 촐레스키 방법을 GP 회귀와 비교하고 학습 프로세스를 개선하기 위해 올바른 데이터 포인트 또는 단위 벡터를 선택하는 것의 중요성을 강조합니다.

  • 00:20:00 이 섹션에서 Jonathan Wenger는 Gaussian Processes(GP)에 대한 커널 행렬을 근사화할 때 올바른 데이터 포인트를 선택하는 것의 중요성에 대해 설명합니다. 그는 조건을 지정할 데이터 포인트를 임의로 선택하면 학습 프로세스가 느려질 수 있는 방법을 설명합니다. 그는 원래 GP 회귀에서 선형 시스템을 해결하기 위해 설계된 "공액 기울기 방법"을 소개합니다. 이 방법은 a가 커널 행렬이고 B가 크기 n의 벡터인 ax=B 문제를 2차 최적화 문제로 바꾸어 선형 시스템 ax=B를 푸는 것과 같습니다. 2차 함수의 그래디언트를 0으로 설정하면 ax에 대한 열은 B와 같고 잔차는 B 빼기 ax로 정의할 수 있습니다. 이를 사용하여 속도를 높일 데이터 포인트를 더 효율적으로 선택하는 방법을 찾을 수 있습니다. 학습 과정을 올립니다.

  • 00:25:00 이 섹션에서 Jonathan Wenger는 가우스 프로세스에서 최적화를 위한 켤레 방향 사용에 대해 설명합니다. 그는 우리가 걷는 방향을 수정함으로써 켤레 방향을 사용할 때 기껏해야 n 단계로 수렴할 수 있다고 설명합니다. 시작하기 위해 그는 가장 가파른 하강 방향의 첫 번째 단계로 음의 기울기를 사용하고 공액 조건을 충족하도록 단계를 수정합니다. 그는 알고리즘을 제시하고 그래디언트 규범을 기반으로 한 중지 기준을 포함하여 높은 수준의 부분을 설명합니다.

  • 00:30:00 이 섹션에서는 Jonathan Wenger가 사후 공분산에 대한 여러 선형 시스템을 풀 때 역함수를 근사화하는 방법인 켤레 기울기 방법에 대해 설명합니다. 켤레 기울기 방법은 부분 스와로브스키와 같은 방식으로 낮은 순위인 역에 대한 근사치를 구성합니다. 솔루션 추정치에 대한 업데이트에는 켤레 방향 di가 포함되며 행렬 CI는 모든 이전 검색 방향이 열로 쌓인 형태로 역수를 근사합니다. 이 방법을 사용하면 시나리오 시스템을 빠르게 해결할 수 있으며 낮은 순위 구조로 인해 가우시안 프로세스를 확장하는 데 효율적인 방법이 됩니다.

  • 00:35:00 이 섹션에서 화자는 가우시안 프로세스 추론을 위해 부분 스콜라스틱 방법과 공액 기울기 방법을 비교합니다. 켤레 기울기 방법은 훨씬 빠르게 수렴하며 발표자는 켤레 기울기 방법에서 사용되는 "액션"이 더 나은 수렴을 허용하는 다른 방식으로 매트릭스를 탐색한다고 설명합니다. 그러나 발표자는 방법이 얼마나 빨리 수렴되는지 분석하는 것이 중요하며, 이를 위해서는 수치, 특히 기계 정밀도 및 조건 수에 대한 이해가 필요하다고 지적합니다. 조건수는 최대고유값을 최소고유값으로 나눈 절대값으로 반전 알고리즘을 구현할 때 불가피하게 증폭되는 오차를 측정한다.

  • 00:40:00 이 섹션에서 Jonathan Wenger는 켤레 기울기 방법 또는 Cholesky 분해와 같이 커널 행렬을 사용하여 선형 시스템을 해결하기 위한 방법의 안정성 및 수렴 동작에 대해 설명합니다. 안정성은 고유값에 따라 달라지는 행렬의 조건수에 의해 결정되며 조건수가 클수록 방법이 더 불안정합니다. 수렴 동작은 행렬의 조건수와 가장 큰 값을 가장 작은 고유값으로 나눈 값으로 결정됩니다. 조건수가 1에 가까울수록 수렴이 느려집니다. 1,000개의 데이터 포인트가 있는 커널 행렬의 조건 수가 적당히 크지만 Wenger는 켤레 기울기 방법이 문제 크기에 비해 수백 번의 반복에서 여전히 빠르게 수렴한다는 것을 보여줍니다.

  • 00:45:00 이 섹션에서는 Jonathan Wenger가 가우시안 프로세스의 크기 조정과 관찰 노이즈가 수렴에 미치는 영향에 대해 설명합니다. 관찰 노이즈가 감소함에 따라 커널 행렬의 조건수가 크게 증가하여 CG의 수렴이 느려집니다. 조건수는 가장 큰 고유값을 가장 작은 고유값으로 나눈 값으로, 데이터 포인트가 가까워질수록 조건수가 커집니다. 이 문제를 해결하기 위해 행렬 저장이 실제 행렬 저장에 비해 상대적으로 저렴하다고 가정하여 사전 조건을 사용하여 커널 행렬을 근사화할 수 있습니다. 근사의 역을 효율적으로 평가함으로써 사전 조건자는 원래 문제를 해결하기 쉬운 문제로 대체할 수 있으므로 CG의 수렴 속도가 빨라집니다.

  • 00:50:00 이 섹션에서 Jonathan Wenger는 보다 효율적인 선형 시스템 해결을 위해 가우시안 프로세스를 확장하는 사전 조건화 개념에 대해 설명합니다. 그는 확률론적 학습 방법의 예를 사용하여 문제에 대한 사전 지식이 문제 해결을 더 쉽게 만드는 방법과 유사하게 사전 조건이 문제를 항등 행렬에 더 가깝게 변환하여 해결하기 더 쉽게 만드는 방법을 설명합니다. 프리컨디셔너를 사용하면 시스템의 조건수가 낮아져 CG를 가속화하고 더 안정적으로 만듭니다. Wenger는 7분 안에 100,000개의 데이터 포인트가 있는 대규모 선형 시스템을 풀기 위해 하위 랭크 플러스 대각선 선조건자와 부분 SVD를 사용하여 선조건의 효율성을 보여줍니다.

  • 00:55:00 이 섹션에서 발표자는 Cholesky에 대한 하이퍼 매개변수 최적화 중에 선형 시스템을 해결하기 위해 사전 조건이 지정된 공액 기울기(CG)를 사용하는 방법에 대해 설명합니다. 손실을 평가하고 기울기를 계산하려면 선형 시스템을 풀고 트레이스를 계산해야 합니다. 그러나 트레이스 계산에는 n개의 행렬-벡터 곱셈이 포함되며 이는 큰 데이터 세트에 대해 너무 비쌉니다. 이를 해결하기 위해 화자는 cx Z(transpose) = 항등 행렬인 직교 행렬 Z를 사용하여 a의 추적을 Z(transpose) xax Z의 추적으로 다시 작성할 수 있도록 제안합니다. 이 근사 방법은 잠재적으로 2차 방정식으로 이어질 수 있습니다. 가우시안 프로세스를 확장하는 데 걸리는 시간입니다.

  • 01:00:00 이 섹션에서 발표자는 여러 행렬-벡터 곱셈을 수행하는 것과 관련된 커널 행렬의 추적 계산을 확장하는 문제에 대해 설명합니다. 한 가지 가능한 해결책은 차원의 제곱근으로 크기가 조정된 임의 벡터를 그린 다음 항등 공분산을 계산하여 계산을 무작위화하는 것입니다. 랜덤 벡터의 공분산을 근사화하면 추적을 계산할 수 있으며 이는 랜덤 벡터 없이 원래 문제를 푸는 것과 동일합니다. 그러나 이 방법에서 Monte Carlo 추정기를 사용하는 것은 수만 개의 랜덤 벡터가 필요하므로 하이퍼파라미터 최적화가 느려지기 때문에 대규모 데이터 세트에는 충분하지 않습니다.

  • 01:05:00 이 섹션에서는 Jonathan Wenger가 대규모 데이터 세트에 대한 가우시안 프로세스(GP) 확장에 대해 설명합니다. 그는 선형 시스템 해결을 위한 기존 선조건자가 커널 행렬을 추정하는 데 사용될 수 있고 데이터 스케일링 문제를 처리하기 위해 그 역을 사용할 수 있다고 설명합니다. 부분 촐레스키 또는 확률 추적 추정과 함께 선조건자를 사용하면 역추적을 추정하는 데 도움이 됩니다. 동일한 정보를 사용하여 로그 결정 요인의 그래디언트도 추정할 수 있습니다. 이러한 전략을 사용하면 GPU에서 최대 백만 개의 데이터 포인트가 있는 데이터 세트로 확장할 수 있습니다. Wenger는 사전 훈련에는 하이브리드 매개변수를 최적화하기 위한 발판으로 작은 데이터 세트를 사용하는 것이 포함된다고 말합니다.

  • 01:10:00 이 섹션에서 발표자는 가우시안 프로세스 회귀에 대한 Monte Carlo 추정의 수렴 속도를 개선하기 위한 다양한 전략에 대해 논의합니다. 사전 조건 수렴 비율을 상속하면 기하급수적으로 또는 다항식으로 참 값으로 더 빠르게 수렴할 수 있습니다. 행렬 벡터 곱셈을 통해 커널 행렬을 관찰하기 위한 작업의 선택 또한 얼마나 빨리 수렴을 달성할 수 있는지에 영향을 미칠 수 있습니다. 따라서 가우시안 과정을 위한 빠른 수치 알고리즘을 개발하기 위해서는 사전 조건이나 동작 선택을 통해 빠르게 수렴할 수 있는 도메인 전문 지식이 필요합니다. 또한 고차원 데이터를 더 작은 훈련 데이터 세트로 압축하여 보다 효과적인 방식으로 요약하는 변형 근사를 통한 선형 시간 GP의 아이디어가 도입되었습니다.

  • 01:15:00 이 섹션에서 Wenger는 가우시안 프로세스의 사용과 이를 효과적으로 확장할 수 있는 방법에 대해 설명합니다. 아이디어는 교육 데이터를 요약하여 사후에 대한 직접적인 근사치를 제공하는 것입니다. 여기서 I는 유도 입력의 수이고 n은 교육 데이터의 크기입니다. 그러나 반복적인 방법은 하이퍼 매개변수 최적화가 필요하며 이 또한 고려해야 합니다. 이 경우 일괄 최적화 또는 sdd와 같은 확률적 방법을 사용할 수 있으며 선호하는 최적화 프로그램을 사용하여 신속하게 최적화할 수 있습니다. 가장 비용이 많이 드는 연산인 커널 행렬 평가를 제외하고 모든 필수 연산은 I의 세제곱 또는 I의 제곱 곱하기 n입니다.

  • 01:20:00 이 섹션에서 연사는 데이터 세트에 대해 선험적으로 유도점 수를 설정해야 하는 유도점 방법을 사용하여 가우시안 프로세스를 스케일링하는 불확실성 정량화 문제에 대해 논의합니다. 옵티마이저가 더 나은 요약 데이터 포인트를 검색함에 따라 결과 불확실성 정량화는 실제 가우시안 프로세스와 크게 달라집니다. 반복 방법은 시간이 다 될 때까지 근사의 정확도를 제어할 수 있지만 유도점 방법은 최적화 전에 근사의 충실도를 제어해야 합니다. 발표자는 계산 시간에 관계없이 근사의 모든 지점에서 불확실성 정량화를 신뢰할 수 있는 방법을 설계할 수 있는지 여부에 대한 질문을 제기합니다.
 

강의 4 -- 계산 인식 가우시안 프로세스 -- 조나단 웽거



ML 4의 수치 -- 계산 인식 가우시안 프로세스 -- Jonathan Wenger

ML의 수치에 대한 이 비디오에서 Jonathan Wenger는 계산 인식 가우시안 프로세스와 예측의 근사 오류 및 불확실성을 정량화하는 기능에 대해 설명합니다. 그는 올바른 행동을 선택하는 것의 중요성과 켤레 그래디언트가 불확실성을 크게 줄이고 학습 속도를 높이는 방법을 탐구합니다. Wenger는 또한 유도 포인트를 기반으로 선형 시간 GP 근사치를 사용하는 것에 대해 이야기하지만 그러한 근사치에서 발생하는 문제를 강조합니다. 마지막으로 그는 대표 가중치에 대한 신념을 업데이트하고 대표 가중치의 오류를 해결하기 위해 확률론적 학습 알고리즘을 사용하는 방법에 대해 논의합니다. 전반적으로 이 비디오는 계산 불확실성을 설명하여 예측 정확도를 개선하는 계산 인식 가우시안 프로세스의 효과를 보여줍니다.

Jonathan Wenger는 또한 이 비디오에서 계산 인식 가우시안 프로세스와 그 복잡성에 대해 설명합니다. 그는 커널 행렬의 상위 사분면만 계산하고 저장하면 되며 알고리즘의 계산 비용은 이 사분면의 크기에 비례한다고 설명합니다. 가우시안 프로세스는 계산이 특정 데이터 포인트만 대상으로 하여 데이터와 계산 사이의 경계를 흐리게 하는 한 임의 크기의 데이터 세트에서 사용할 수 있습니다. Wenger는 예상 데이터를 조건으로 하여 이러한 상황을 설명하기 위해 GP를 모델링할 수 있다고 주장합니다. 그는 근사 모델로 정확한 불확실성 정량화를 허용하는 새로운 정리를 소개합니다. 마지막으로, 그는 GP 모델을 학습 중인 기능을 부분적으로 지배하는 물리 법칙이 있는 경우로 확장하는 것에 대한 다음 주 강의를 미리 봅니다.

  • 00:00:00 이 섹션에서 Jonathan Wenger는 Gaussian 프로세스 강의의 최종 정점에 대해 이야기하며 여기서 임의의 시간에 정확한 불확실성 정량화를 수행하는 방법을 보여줍니다. 그는 이 접근 방식을 통해 사용자가 얼마나 많은 계산을 투입했는지 또는 예산이 얼마인지에 관계없이 학습하려는 기능에서 얼마나 멀리 떨어져 있는지 항상 정량화할 수 있다고 설명합니다. 이전 강의의 알고리즘을 학습 에이전트로 재해석하여 예측 사후에 도입되는 근사 오차를 정량화할 수 있습니다. 또한 컴퓨터를 통해 데이터를 관찰한다는 것이 무엇을 의미하는지와 이를 둘러싼 철학적 논쟁에 대해 논의합니다.

  • 00:05:00 이 섹션에서 Jonathan Wenger는 계산 인식 가우시안 프로세스를 처리할 때 올바른 작업을 선택하는 것의 중요성에 대해 설명합니다. 그는 행동의 선택이 불확실성을 크게 줄이고 예측되는 현상에 대해 학습하는 과정을 가속화할 수 있음을 보여줍니다. 또한 그는 선형 시스템을 풀거나 2차 함수를 최소화할 때 더 나은 작업을 찾는 방법으로 켤레 기울기 방법을 탐구합니다. 문제의 기하 구조를 고려하면 켤레 기울기가 적은 수의 단계로 솔루션에 수렴할 수 있습니다.

  • 00:10:00 비디오의 이 섹션에서 Jonathan Wenger는 계산 인식 가우시안 프로세스와 다른 근사 방법과의 차이점에 대해 설명합니다. 그는 부분 공액 기울기 및 부분 스카이 역 근사 방법 모두에서 가장 비용이 많이 드는 작업이 행렬-벡터 곱셈이라고 말합니다. 그런 다음 그는 요약 데이터 포인트로 유도 포인트를 기반으로 하는 선형 시간 GP 근사의 아이디어를 애타게 설명하고 선형 시간 근사에서 발생하는 문제에 대해 논의합니다. 그런 다음 Wenger는 정확한 불확실성 정량화 문제를 해결하고 올해 말 NURBS에서 발표될 최첨단 연구라고 말하는 계산 인식 GP 추론을 소개합니다.

  • 00:15:00 이 섹션에서 Jonathan Wenger는 계산 인식 가우시안 프로세스와 대표 가중치의 선형 시스템을 풀기 위해 반복 방법을 사용하여 발생하는 근사 오차를 정량화하는 방법에 대해 설명합니다. 그는 GP 모델의 커널 함수가 실제 함수가 어떻게 생겼는지에 대한 가정을 인코딩하고 반복 솔버가 사후 평균 예측을 구성하기 위해 이러한 가중치를 근사화한다고 설명합니다. 이 근사 오차를 확률적으로 정량화하면 예측에 추가 불확실성을 추가하여 모델의 정확도를 향상시킬 수 있습니다. Wenger는 또한 가우시안 분포의 선형 대수학에 대한 간략한 요약과 확률 이론에서 특히 컨디셔닝 및 관찰과 관련하여 더 쉽게 계산하는 방법을 제공합니다.

  • 00:20:00 이 섹션에서 Jonathan Wenger는 가우시안 분포의 속성과 관찰 Y가 주어진 변수 X에 대한 사후 분포를 결정하는 데 사용할 수 있는 방법에 대해 설명합니다. 스케일링 및 주변화 속성을 결합하여 가우시안 프로세스를 사용할 수 있습니다. 대표 가중치 추정치의 근사 오차를 정량화합니다. Wenger는 이전 가우스 분포를 업데이트하고 직접 관찰할 수 없는 진정한 대표 가중치를 학습하는 데 사용할 수 있는 방법을 설명합니다. 가우시안 종형 곡선의 확산 및 방향은 진정한 대표 가중치를 찾는 방향을 결정하는 데 사용할 수 있습니다.

  • 00:25:00 이 섹션에서 Jonathan Wenger는 잔차 및 벡터 변환을 사용하여 계산 인식 가우시안 프로세스에서 간접적으로 검은 점을 관찰하는 방법을 설명합니다. 그는 표현과 추정 가중치 사이의 거리를 계산하기 위해 아핀 가우스 추론 정리를 적용하는 방법을 보여줍니다. 이 과정은 신념을 직교선으로 접고 1차원 확률 신념을 개발하는 것을 포함하며, 이는 대표 가중치를 찾는 데 사용됩니다. Wenger는 또한 보다 정확한 솔루션에 도달하기 위해 이전 신념과 일치하는 보다 유익한 레드 라인을 선택하는 방법에 대해서도 논의합니다.

  • 00:30:00 이 섹션에서 Jonathan Wenger는 계산 인식 가우시안 프로세스의 대표 가중치에 대한 믿음을 작업 시간에 잔차를 곱하여 관찰한 결과를 통해 업데이트하는 알고리즘에 대해 설명합니다. 그는 업데이트가 아핀 가우시안 추론을 포함한다고 설명하고 업데이트 프로세스의 핵심 요소를 지적합니다. 알고리즘은 CG 및 부분 Cholesky와 유사하지만 사전 선택은 여전히 해결해야 할 문제이며 좋은 오류 추정치를 얻기 위해 진정한 대표 가중치가 있는 위치와 관련되어야 하기 때문입니다. Wenger는 GP 사전 및 만들어진 가정이 커널 행렬의 역행렬에 포함되므로 GP 사전에 중요하게 만드는 대표 가중치와 관련이 있다고 제안합니다.

  • 00:35:00 이 섹션에서 Jonathan Wenger는 GP(가우시안 프로세스)를 사용하여 관찰하기 전에 생성된 분포 데이터를 이해하는 방법에 대해 설명합니다. f에 대한 분포를 가정하면 Wenger는 레이블이 제로 평균 가우시안 사전을 사용할 때 제로 평균에 따라 분포되고 관찰 모델의 일부인 커널 매트릭스와 독립 노이즈에 따라 달라진다고 설명합니다. 그런 다음 Wenger는 작업에 투영하여 이전 항목을 업데이트하는 확률 학습 알고리즘을 사용하여 대표자를 찾는 방법에 대해 설명합니다. 마지막으로 Wenger는 V star의 선형 함수인 데이터 포인트에서 평가된 mu star의 분포를 계산하여 보정된 사전 K hat inverse가 필요한 문제를 해결하는 방법을 설명합니다.

  • 00:40:00 이 섹션에서 Jonathan Wenger는 계산 인식 가우시안 프로세스와 계산 불확실성을 설명하는 방법을 설명합니다. 그는 무작위 변수에 대한 여러 옵션을 고려하고 가능한 모든 대표 가중치 추정치를 고려하는 사후 평균 예측이 계산되는 주변화의 아이디어에 대해 논의합니다. 그는 선형 주변화가 작동하는 방식과 공분산에 추가 불확실성을 추가하는 방식을 설명합니다. 그런 다음 Wenger는 계속해서 GP의 불확실성을 평균 오차 추정치로 해석하는 방법과 계산 불확실성을 오차 추정치로 간주할 수 있는 방법에 대해 논의합니다. 전반적으로 이 절에서는 참 함수에 대한 오차와 대표 가중치 오차를 하나의 단일 추정치로 포함하는 결합된 불확실성의 계산을 설명합니다.

  • 00:45:00 이 섹션에서 발표자는 계산 인식 가우시안 프로세스에 대해 논의합니다. 이 프로세스는 관찰된 데이터가 충분하지 않아 발생하는 오류와 예측을 학습하기에 충분한 계산을 수행하지 않아 발생하는 오류를 결합합니다. 연사는 Ed Cholesky와 CG 작업을 통해 이 프로세스의 두 가지 예를 보여줍니다. GP라는 제안된 방법은 추적 불확실성을 통해 보다 정확한 예측을 얻기 위해 사후를 계산하고 초기화와 대표 신념을 결합합니다. 계산 불확실성이 감소하고 플롯된 그래프에서 실제 사후 평균에 더 근접한 근사에서 볼 수 있듯이 이 방법은 간단하고 효과적입니다.

  • 00:50:00 이 섹션에서 화자는 계산 인식 가우시안 프로세스와 커널 매트릭스를 반전할 필요 없이 신념을 사용하는 방법에 대해 설명합니다. 그들은 특정 방향으로 동작을 선택하고 선택한 하위 공간에서 표시된 두 개의 가중치에 얼마나 가까운지 관찰합니다. 이는 표시된 가중치에 얼마나 빨리 수렴하는지에 영향을 미칩니다. 대표 가중치의 추정치를 업데이트하기 위해 예상 잔차를 관찰하고 걷는 방향을 계산합니다. 또한 저순위 근사값을 계산하고 대표 및 정밀도 매트릭스의 추정치를 업데이트합니다. 그들은 부분 알래스카와 CG를 사용하여 같은 양을 적용하고, 특정 행동을 복구하기 위해 단위 벡터 행동을 선택하고, 유도점을 중심으로 하는 커널 함수에 따라 데이터 포인트를 가중하는 선형 시간 방법과 같은 방법을 설계합니다.

  • 00:55:00 이 섹션에서 Jonathan Wenger는 계산 인식 가우시안 프로세스(GP)에 대해 논의하고 완전히 독립적인 훈련 조건부 GP(FITC-GP)와 비교합니다. 그는 FITC-GP의 일부 문제를 해결하지만 밀도가 높아서 N 제곱의 복잡성을 초래하므로 비용 효율적이지 않은 Kernel Vector Actions를 소개합니다. Wenger는 데이터 포인트의 일부만을 대상으로 하는 특정 조치를 취함으로써 커널 매트릭스 계산에 필요한 복잡성을 줄일 수 있음을 보여줍니다. 결국 계산 GP는 더 나은 성능을 가지며 이러한 조치는 높은 정확도로 확장 가능한 계산에 유용한 접근 방식임이 입증되었습니다.

  • 01:00:00 이 섹션에서 Jonathan Wenger는 계산 인식 가우시안 프로세스와 그 복잡성에 대해 설명합니다. 그는 커널 행렬의 상위 사분면만 계산하고 저장하면 되며, 결과적으로 알고리즘의 계산 비용은 이 사분면의 크기에만 비례한다는 것을 보여줍니다. 또한 그는 하위 사분면에 0이 있는 작업이 계산을 통해 특정 데이터 포인트만 대상으로 선택되는 한 임의 크기의 데이터 세트에서 알고리즘을 사용할 수 있다고 강조합니다. Wenger는 계산 대상 관찰만 데이터로 간주되기 때문에 이것이 데이터와 계산 사이의 구분을 흐리게 한다고 주장합니다. 마지막으로 그는 투영된 데이터를 조건으로 하여 이러한 상황을 설명하기 위해 가우시안 프로세스를 모델링할 수 있다고 지적합니다.

  • 01:05:00 이 섹션에서 Jonathan Wenger는 GP(가우시안 프로세스)를 두 가지 방식으로 생각할 수 있다고 설명합니다. 발생하는 상황에 대한 보다 정확한 모델 또는 근사를 통해 도입된 오류를 정량화하고 예측에 고려합니다. 그런 다음 제곱 오차를 확률적 측정으로 해석하는 방법과 사후 조합을 예측 도구로 사용할 수 있는 방법에 대해 논의합니다. Wenger는 또한 근사 모델로 정확한 불확실성 정량화를 허용하는 새로운 정리를 도입하여 사용자가 가우시안 프로세스를 신뢰하는 것과 같은 방식으로 불확실성 정량화를 신뢰할 수 있도록 합니다.

  • 01:10:00 이 섹션에서 Jonathan Wenger는 학습 알고리즘을 고안하여 가우시안 프로세스(GP)를 근사화할 수 있다고 설명합니다. 이 알고리즘은 알고리즘의 오류를 확률적으로 정량화하고 오류를 예측에 사용되는 GP 사후에 푸시하여 다음을 허용합니다. 사용된 계산 능력에 관계없이 정확한 불확실성 정량화를 위해. Wenger는 또한 방법의 다양한 변형이 존재하지만 동작이 선형적으로 독립적인 한 정확한 불확실성 정량화를 제공한다고 지적합니다. 마지막으로 Wenger는 다음 주 강의를 미리 봅니다. 여기서 Jonathan은 물리 법칙이 학습 중인 기능을 부분적으로 제어하는 경우로 GP 모델을 확장하는 것에 대해 논의할 것입니다.
 

강의 5 -- 상태 공간 모델 -- 조나단 슈미트



ML 5의 수치 -- 상태 공간 모델 -- 조나단 슈미트

이 섹션에서 Jonathan Schmidt는 상태 공간 모델과 머신 러닝에 대한 응용 프로그램을 소개합니다. 그는 상태 공간 모델이 복잡한 동적 시스템을 모델링하는 데 사용되며 부분적으로만 관찰할 수 있고 고도의 비선형 상호 작용을 수반한다고 설명합니다. 강의는 상태 공간 모델의 그래픽 표현과 Markov 속성 및 조건부 독립 측정의 중요한 속성을 다룹니다. Schmidt는 서로 다른 시점에서 얻은 측정값을 사용하여 시스템의 상태를 추정하는 데 사용되는 예측, 필터링 및 스무딩 분포와 같은 다양한 분포를 계산하기 위한 다양한 알고리즘을 제시합니다. 강의는 또한 Julia의 Kalman 필터 알고리즘 구현과 선형 가우시안 상태 공간 모델의 평활화 추정 계산을 다룹니다. 마지막으로 Schmidt는 상태 공간 모델에서 비선형 동역학 및 측정을 추정할 수 있는 확장 칼만 필터에 대해 설명합니다.

또한 Jonathan Schmidt는 특히 비선형 동역학 및 확장 칼만 필터에 중점을 두고 코드를 사용한 상태 공간 모델 및 구현에 대해 설명합니다. 또한 스무딩 알고리즘과 대안적인 베이지안 필터링 방법을 시연하며 장단점을 강조합니다. 강의는 추가 학습에 대한 권장 사항과 Nathaniel이 동적 시스템을 시뮬레이션하기 위한 확률 수치를 소개할 다음 강의에 대한 기대로 마무리됩니다.

  • 00:00:00 이 섹션에서 Jonathan Schmidt는 기계 학습 강의 과정의 수치에 대한 새로운 초점으로 상태 공간 모델과 동적 시스템을 소개합니다. 그는 동적 시스템이 시간이 지남에 따라 진화하고 부분적으로만 관찰할 수 있어 모델링하기 어렵다고 설명합니다. Schmidt는 동적 시스템의 시간적 구조와 숨겨진 구성 요소를 설명하기 위해 COVID-19 사례 수 및 스마트폰 방향 추정과 같은 예를 제공합니다. 궁극적인 목표는 확률론적 방법을 사용하여 이러한 시스템을 시뮬레이션하는 것이지만 먼저 관찰 가능한 데이터에서 잠재 구성 요소를 발견하기 위한 언어 및 알고리즘 프레임워크를 설정해야 합니다.

  • 00:05:00 이 섹션에서 연사는 새로운 데이터가 들어올 때 복잡한 동적 시스템의 추정치를 신속하게 업데이트하는 것이 목표인 온라인 추정 작업을 포함하는 상태 공간 모델에 대해 설명합니다. 이러한 모델은 종종 부분적으로만 관찰할 수 있습니다. 매우 비선형적인 기능과 상호 작용을 포함합니다. 이를 달성하기 위해서는 그에 따라 신념을 업데이트하는 알고리즘 프레임워크가 필요합니다. 발표자는 상태 공간 모델에 사용되는 모델링 언어의 그래픽 표현에 대해 논의합니다. 여기서 흰색 노드 시퀀스는 시스템 상태를 모델링하는 무작위 변수를 나타내고 빨간색 상자는 관찰된 데이터를 나타냅니다. 동적 시스템의 상태는 추적되고 서로 상호 작용하는 시스템의 진화를 결정하는 일련의 물리량입니다. 관측 데이터 y는 현재 상태에 따라 다르며 종종 궤도의 일부 상태에서만 사용할 수 있고 다른 상태에서는 사용할 수 없습니다.

  • 00:10:00 이 섹션에서 Jonathan Schmidt는 동적 시스템 모델링을 위한 확률론적 프레임워크로 상태 공간 모델을 소개합니다. 그는 상태 공간 모델의 두 가지 중요한 속성인 Markov 속성과 조건부 독립 측정을 강조합니다. 이러한 속성을 사용하여 상태 공간 모델을 첫 번째 상태에 대한 초기 분포, 후속 상태에 대한 역학 모델 및 관찰에 대한 측정 모델을 포함하는 베이지안 모델로 정의합니다. Schmidt는 이러한 증류된 구성 요소가 나머지 강의 시리즈의 기초를 형성할 것이라고 말합니다.

  • 00:15:00 이 섹션에서 화자는 상태 공간 모델을 사용하여 시스템을 분석하는 방법을 설명하고 네 가지 조건부 확률 분포를 계산합니다. 여기에는 진행 중인 시퀀스의 모든 단계에 대해 계산되는 예측 분포, 필터링 분포, 데이터 우도 및 평활화 분포가 포함됩니다. 파생에는 계산 중인 수량을 도입하고 이미 알려진 것을 기반으로 공동 분포를 구축하는 작업이 포함됩니다. Chapman Kolmogorov 방정식은 과거 측정값이 주어진 미래를 예측하는 데 사용되며 Bayes의 정리를 사용하는 수정 단계는 새로운 데이터를 추정치에 통합하는 데 사용됩니다.

  • 00:20:00 이 섹션에서 화자는 상태 공간 모델의 개념과 여기에 사용된 예측 및 업데이트 체계를 설명합니다. Chapman-Homograph 방정식을 통해 예측 분포를 계산함으로써 모델은 Bayes 정리를 통해 예측을 업데이트합니다. 그런 다음 스피커는 뒤로 가지 않고 선형 시간 루프에서 작동하는 알고리즘에 대한 의사 코드를 제시합니다. 발표자는 이전의 모든 측정이 주어진 현재 상태에 대한 일련의 분포를 생성하는 것의 중요성을 강조합니다. 마지막으로 발표자는 선형 가우시안 상태 공간 모델과 분포를 생성하는 방법을 소개합니다.

  • 00:25:00 이 섹션에서 화자는 프로세스 노이즈 공분산 행렬 Q가 있는 선형 가우시안 시스템과 측정 행렬 H 및 측정 공분산 행렬 R이 있는 측정 모델에 대한 상태 공간 모델을 소개합니다. 강의에서는 예측이 어떻게 수행되는지 설명합니다. 모델의 필터링 모멘트는 가우시안 추론을 사용하여 계산할 수 있으며 사후 분포는 복잡한 용어 모음입니다. 그런 다음 연사는 헝가리 과학자 Rudolph Kalman의 이름을 딴 Kalman 필터를 소개합니다. 이 필터는 닫힌 형태의 예측 및 필터링 모멘트 계산을 허용합니다. 칼만 필터의 예측 및 수정 방정식이 제시되며, 칼만 이득은 필터링 평균을 업데이트하기 위해 측정 공간에서 얻은 정보를 상태 공간으로 변환하는 중요한 수량입니다.

  • 00:30:00 비디오의 이 섹션에서 Jonathan Schmidt는 상태 공간 모델을 소개하고 노이즈 측정을 기반으로 궤적을 필터링하는 데 이 모델을 사용하는 방법을 설명합니다. 그는 GPS 측정을 사용하여 2D 평면에서 자동차를 추적하는 예를 제공하고 Julia에서 코드를 작성합니다. Schmidt는 역학 모델이 선형 가우시안 모델이고 프로세스 노이즈 공분산이 시간 단계의 다항식 항을 포함한다고 설명합니다. 그는 또한 필터링 궤적은 이전 및 현재 데이터 포인트만 사용하며 미래에 대한 정보는 제공하지 않는다고 강조합니다.

  • 00:35:00 이 섹션에서 화자는 Julia 코드를 사용하여 상태 공간 모델에 대한 Kalman 필터 구현을 설명합니다. 그는 전환 및 측정 모델을 설정하고, 평균 및 공분산을 예측하고, 측정 모델을 사용하여 추정치를 수정하는 방법을 설명합니다. 그런 다음 화자는 Kalman 필터를 실행하는 방법을 시연하고 결과 추정치 및 해당 불확실성을 시각화합니다.

  • 00:40:00 이 섹션에서 Jonathan Schmidt는 동적 시스템을 설명하는 데 상태 공간 모델을 사용하는 방법과 선형 대수학을 사용하여 흥미로운 수량을 계산할 수 있는 선형 가우시안 모델을 사용하여 구축할 수 있는 방법을 설명합니다. 그는 또한 사용 가능한 모든 데이터 포인트가 주어진 궤적의 최상의 추정치를 제공하고 역방향 재귀 알고리즘에서 분포를 계산하기 위해 필터링 분포에 의존하는 스무딩 사후의 개념을 소개합니다. 평활화 방정식의 유도에는 확률 이론과 Markov 속성이 포함되지만 결과적으로 생성되는 가우시안 확률 변수 모음을 통해 각 시간 단계에서 평활화 분포를 쉽게 계산할 수 있습니다.

  • 00:45:00 이 섹션에서 발표자는 선형 가우시안 상태 공간 모델에서 평활화 추정치를 계산하는 과정을 설명합니다. 여기에는 행렬 벡터 곱 연산을 활용하고 필터링 사후에서 사후를 계산하기 위해 주변화하는 동안 다음 시간 단계에서 주변화하는 것이 포함됩니다. 평활 추정을 위한 알고리즘은 고려할 데이터 세트 또는 고정된 시간 단계 부분이 있는 경우에만 작동하기 때문에 for 루프를 통해 계산됩니다. 이 프로세스에는 시계열의 끝에서 시작하여 평활화 게인을 계산하고 이를 사용하여 평활 모멘트를 계산하여 처음까지 뒤로 이동하는 작업이 포함됩니다. 화자는 또한 필터링 추정치가 시계열 끝에서 평활화 추정치와 일치한다고 언급합니다. 스무딩 알고리즘은 궁극적으로 스무딩 사후처럼 가우시안 프로세스 사후를 제공합니다.

  • 00:50:00 이 섹션에서 연사는 선형 전이, 선형 측정, 동적 및 측정 모두에 대한 추가 가우시안 노이즈, Markov 속성을 포함하는 가정을 만들어 선형 시간에서 가우시안 프로세스 사후를 계산하는 방법을 설명합니다. 그러나 가우시안 필터링 및 스무딩을 사용하여 모든 가우스 프로세스 사후를 계산할 수 있는 것은 아닙니다. 발표자는 또한 가우시안 가정을 폐기할 가능성에 대해서도 논의하지만 이것은 완전히 새로운 종류의 알고리즘을 필요로 합니다. 다음 단계는 함수를 선형화한 다음 공통 필터링을 사용하기 위해 먼저 테일러 근사를 사용하여 비선형 모델을 살펴보는 것입니다.

  • 00:55:00 이 섹션에서 Jonathan Schmidt는 상태 공간 모델과 비선형 역학 및 측정을 위한 칼만 필터의 확장인 확장 칼만 필터에 대해 설명합니다. 비선형 역학 및 측정 모델의 선형화는 야코비 행렬을 사용하여 이루어지며 일부 수정과 함께 표준 칼만 필터 방정식을 사용할 수 있습니다. 예측 평균은 이전 필터링 평균에서 평가되므로 예측 공분산 행렬을 쉽게 계산할 수 있습니다. 측정 모델은 유사하게 선형화되고 확장 칼만 필터 방정식이 도출됩니다. Schmidt는 비선형 함수를 구별하는 것이 불가능하거나 바람직하지 않을 때 확장 칼만 필터가 유용하다고 지적합니다.

  • 01:00:00 이 섹션에서 Jonathan Schmidt는 기능을 차별화할 수 없는 경우 발생하는 상황과 이를 해결하는 방법에 대해 설명합니다. 한 가지 가능한 해결책은 체계에서 유한 차분을 사용하는 것입니다. 여기서 표준 유한 차분과 같은 차이를 만든 다음 동일한 작업을 수행합니다. Schmidt는 또한 평활화된 방정식을 살펴보고 필터링 평균에서 평가된 비선형 함수의 Jacobian 행렬을 전치 전이 행렬로 삽입하여 확장 루트 평활기를 구축합니다. Schmidt는 상태 차원이 2이고 측정값이 스칼라인 진자의 비선형 상태 공간 모델을 사용하는 코드 예제를 제공합니다. 그는 비선형 변환을 사용하여 역학 모델을 설정하고 프로세스 노이즈 공분산에 대해 논의합니다.

  • 01:05:00 이 섹션에서 Jonathan Schmidt는 상태 공간 모델과 코드를 사용하여 모델을 구현하는 방법에 대해 설명합니다. 그는 시스템의 비선형 역학과 측정에 사용되는 간단한 선형 측정 모델에 대해 설명합니다. 그는 또한 확장 칼만 필터를 구현하여 진자의 궤적을 추정하는 방법을 시연합니다. 필터는 자동 미분을 사용하여 비선형 역학 함수에 대한 Jacobian 행렬과 측정 함수에 대한 기울기를 계산합니다. 결과 애니메이션은 예측된 궤적과 노이즈 측정을 보여줍니다.

  • 01:10:00 이 섹션에서는 Jonathan Schmidt가 상태 공간 모델의 필터링 추정 및 확장 평활화에 대해 설명합니다. 필터링 추정값은 음영 영역의 불확실성 추정값을 표시하는 반면, 평활화 알고리즘은 자동 미분을 사용하여 필터링 추정값을 정리하고 평활화 이득, 평활화 평균 및 평활화 공분산을 계산합니다. 스무더는 가우시안 프로세스 사후 변연을 반환하며, 이는 불확실성에서 실측 궤적을 잘 커버합니다. Schmidt는 또한 근사 분포를 위한 무향 칼만 필터와 실제 실제 후방을 근사하는 입자 필터와 같은 베이지안 필터링을 위한 대체 방법을 언급합니다. 이러한 방법에는 장단점이 있고 구현하기 어려울 수 있지만 비선형 또는 비가우시안 모델에 효과적일 수 있습니다. Schmidt는 이러한 방법에 관심이 있는 사람들에게 Simo Särkkä의 책 "Bayesian Filtering and Smoothing"을 추천합니다.

  • 01:15:00 이 섹션에서 발표자는 상태 공간 모델, 선형 가우시안 모델, 비선형 역학 및 측정을 처리하는 데 사용되는 칼만 및 확장 칼만 필터에 대해 배운 내용을 요약합니다. 다음 강의를 추천합니다. 여기서 Nathaniel은 베이지안 필터링 및 스무딩을 통해 확률 수치를 사용하여 이러한 동적 시스템을 시뮬레이션하는 방법을 배우기 위해 자연의 법칙을 캡처하고 이를 강의와 결합하는 강력한 언어를 일주일 안에 소개합니다. 발표자는 피드백을 요청하고 청취자에게 시간을 내어 주셔서 감사합니다.
 

강의 6 -- 상미분방정식 풀기 -- Nathanael Bosch



ML 6의 수치 -- 상미분 방정식 풀기 -- Nathanael Bosch

Nathanael Bosch는 기계 학습에서 시간이 지남에 따라 진화하는 입력 및 모델 시스템이 주어진 함수의 파생물을 설명하는 ODE의 개념을 다룹니다. 그는 ODE를 푸는 문제에 대해 논의하고 정방향 오일러 및 역방향 오일러와 같은 수치적 방법과 안정성 특성을 소개합니다. Bosch는 명시적 중간점 및 고전적인 4차 방법과 같은 다양한 수치 방법과 정확성과 복잡성의 장단점을 탐구합니다. 그는 라이브러리를 사용하여 ODE를 풀 때 발생하는 문제를 피하기 위해 로컬 오류, 순서 및 이해 안정성의 중요성을 강조합니다.

비디오의 이 두 번째 부분에서는 기계 학습 기술을 사용하여 벡터 필드와 상미분 방정식(ODE)의 초기값을 추정하는 문제에 대해 설명합니다. 발표자는 추론 문제를 해결하기 위해 ODE의 상태에 대한 생성 모델과 관찰 모델을 작성하는 것의 중요성을 설명합니다. 우도 함수는 모수 추정값을 생성하는 음의 로그 우도를 최소화하여 최대화됩니다. 연사는 SIR-D 모델을 사용하여 이 접근 방식을 시연하고 신경망을 사용하여 접촉률 추정을 개선하는 방법에 대해 논의합니다. 기계 학습 연구에서 ODE의 중요성과 실제 문제 해결에서 ODE의 역할도 강조됩니다.

  • 00:00:00 강의의 이 섹션에서 Nathanael Bosch는 상미분 방정식(ODE)의 개념과 머신 러닝에서 어떻게 사용되는지 소개합니다. 그는 입력이 주어진 함수의 미분을 설명하는 방법으로 ODE를 정의하고 기계 학습에서 종종 ODE가 시간이 지남에 따라 진화하는 시스템을 모델링하는 데 사용된다고 설명합니다. 그는 확산 모델 및 최적화 문제를 포함하여 기계 학습에서 ODE가 나타나는 위치에 대한 예를 제공합니다. Bosch는 ODE를 완벽하게 푸는 비실용성으로 인해 복잡한 수치 솔버가 필요한 ODE를 푸는 문제에 대해서도 설명합니다.

  • 00:05:00 이 섹션에서 발표자는 잡음을 정규화 흐름을 통해 수행되는 복잡한 분포 모델링을 위한 데이터로 변환하는 데 ODE를 사용하는 방법에 대해 설명합니다. 그는 또한 많은 연구를 촉발하고 잔여 신경망을 보다 연속적인 것의 이산화로 재해석하는 신경 ODE의 개념을 설명합니다. 또한 화자는 ODE를 최적화, 특히 이산 경사하강법보다 정리를 작성하기 더 쉬운 경사 흐름과 관련시킵니다. 마지막으로 발표자는 매개변수 추론이 ODE를 사용하여 알려지지 않은 것을 학습하는 예에 대해 논의하고 다음 강의에서는 수치 ODE 솔루션을 기계 학습 알고리즘으로 해석할 것입니다. 발표자는 ODE에 대한 솔루션을 작성할 수 있지만 적분 문제와 알 수 없는 변수로 인해 도움이 되지 않는다고 결론을 내립니다.

  • 00:10:00 이 섹션에서 해설자는 기계 학습의 많은 알고리즘을 이해하는 데 중요한 상미분 방정식(ODE)과 초기값 문제를 소개합니다. ODE는 시간 경과에 따른 시스템의 변화율을 나타내며 문제를 해결하려면 초기값이 필요합니다. ODE에 대한 해는 초기값에 의존하는 함수에 의해 제공되며 ODE에 대한 수치해는 단계별 외삽이 필요합니다. 내레이터는 인구 증가에 대한 로지스틱 ODE 문제를 제시하고 솔루션이 제공됩니다. 내레이터는 초기 값 문제를 해결하는 목표가 ODE의 벡터 필드가 주어진 특정 시작점에 대한 솔루션을 찾는 것임을 강조합니다. ODE를 풀 때 어려운 점은 적분을 풀고 미분 항을 처리하는 것입니다. 내레이터는 실제 솔루션을 정확하게 근사하기 위해 ODE의 수치 솔루션에 대한 작은 단계 크기를 제안합니다.

  • 00:15:00 이 섹션에서 Nathanael Bosch는 상미분 방정식을 풀기 위한 다양한 수치적 방법을 설명합니다. 그가 제시하는 첫 번째 방법은 0차 테일러 급수 근사법으로 현재 시점의 함수 값만 근사치로 고려한다. 이는 다음 시점을 계산하기 위한 간단하고 명시적인 공식인 Forward Euler 방법으로 이어집니다. Bosch는 이 방법이 잘못된 근사치이지만 소프트웨어 및 동적 시뮬레이션에서 여전히 널리 사용되고 있다고 지적합니다.

  • 00:20:00 이 섹션에서는 비디오에서 상미분 방정식(ODE)을 푸는 두 가지 방법인 정방향 오일러 방법과 역방향 오일러 방법에 대해 설명합니다. 순방향 오일러 방법은 현재 지점의 기울기를 사용하여 다음 지점의 값을 근사화하는 반면, 역방향 오일러 방법은 t + h와 같은 Tau 주변의 Taylor 급수 근사를 사용합니다. 비디오는 합리적인 솔루션을 생성하는 물류 ODE를 사용하는 두 가지 방법에 대한 코드 예제를 제공합니다. 그러나 동영상에서는 수치 해석기를 선택할 때 더 복잡한 미분 방정식을 추가로 고려해야 할 수도 있음을 경고합니다. 또한 이 비디오는 수치적 방법의 복잡성과 수치적 패키지를 사용할 때 기본 알고리즘을 인식하는 것의 중요성에 대해 다룹니다.

  • 00:25:00 이 섹션에서 발표자는 상미분 방정식(ODE)을 풀 때 명시적 방법과 암시적 방법의 차이점과 적절한 알고리즘을 선택할 때 안정성의 중요성에 대해 설명합니다. 화자는 단순 스칼라 ODE x' = λx에 대해 순방향 오일러 방법과 역방향 오일러 방법을 비교합니다. 여기서 λ는 0보다 작습니다. 순방향 오일러 방법은 1 + hλ가 1보다 작은 단계 크기에 대해서만 안정적이며 역방향 오일러 방법은 모든 단계 크기에 대해 안정적입니다. 발표자는 부적절한 스텝 크기를 선택하면 발산 동작이 발생할 수 있음을 보여주면서 ODE를 풀기 위한 적절한 방법을 선택하는 데 있어 안정성의 중요성을 강조합니다.

  • 00:30:00 이 섹션에서 Nathanael Bosch는 상미분 방정식(ODE)을 풀기 위한 정방향 오일러 방법과 역방향 오일러 방법의 차이점에 대해 설명합니다. 두 방법 모두 유사한 수학을 사용하지만 역방향 오일러는 수렴에 대한 작은 요구 사항이 필요하며 정방향 오일러가 처리할 수 없는 ODE의 경직된 영역을 처리할 수 있습니다. 수치 구적법이 필요하며 이를 수행하는 방법에는 여러 가지가 있습니다. 또한 주어진 시간에 함수의 근사치인 X hat을 구성하는 것은 다른 방법이 다른 답을 산출하는 또 다른 문제입니다. 전반적으로 방법의 선택은 계산 시간 및 ODE의 예상 가파른 정도와 같은 요인에 따라 달라집니다.

  • 00:35:00 이 섹션에서 Nathanael Bosch는 상미분 방정식(ODE)을 풀기 위한 수치적 방법의 일반적인 공식을 설명합니다. 그는 또한 다양한 방법에 대해 더 간결하고 읽기 쉽게 만드는 방법으로 정육점 테이블을 소개하고, X 모자를 구성하는 방법뿐만 아니라 bi와 Qi를 계산하는 다양한 방법이 각 방법을 고유하게 만드는 요인이라고 지적합니다. . Bosch는 일반 방정식을 만족하고 0을 포함하지만 여전히 충분히 유용한 방법인 정육점 표를 포함하는 가장 간단한 방법인 정방향 오일러를 포함하여 다양한 수치 방법의 예를 제공합니다. 그는 또한 0이 없고 순방향 오일러와 약간 다르게 계산되는 암시적 방법으로 역방향 오일러를 소개합니다.

  • 00:40:00 이 섹션에서는 상미분 방정식(ODE)을 푸는 데 사용할 수 있는 다양한 전략을 비디오에서 살펴봅니다. 청취자의 제안 중 하나는 적분을 다른 용어로 분할하고 각 용어 사이에 단계를 수행하는 것이었지만 발표자는 이렇게 하면 속성이 다른 다른 알고리즘이 생성될 것이라고 설명합니다. 비디오는 두 개의 오일러 단계를 수행하는 것과 비슷하지만 완전히 동일하지는 않은 명시적 중간점 규칙을 시연하기 위해 계속됩니다. 발표자는 중간점 규칙이 점에서 외삽하고 더 나은 외삽을 얻기 위해 정방향 오일러가 한 일을 줄인다고 설명합니다. 또한 비디오는 Byron과 Kota가 개발한 원래 방법이었기 때문에 이렇게 불리는 고전적인 4차 방법을 탐구합니다. 마지막으로 비디오는 ODE를 풀기 위한 계수를 선택하는 데 약간의 자유가 있지만 Wikipedia에는 이미 수백 가지의 알려진 방법이 있다고 설명합니다.

  • 00:45:00 두 가지 솔루션으로 이어집니다. Dobre-Fermi 방법에서는 각 단계에서 두 개의 솔루션을 제공하기 때문에 끝에 두 개의 라인이 있습니다. 이 방법은 여러 속성을 만족하기 때문에 복잡하고 Tableau가 커질수록 복잡해집니다. 목표는 그래디언트가 작동하는 방식을 이해하는 것이 아니라 계수가 충족해야 하는 속성에 초점을 맞추는 것입니다. 이 방법은 구적 규칙에 의해 동기가 부여되었으며 ODE에 대한 직접적인 매핑이 없을 수 있지만 여전히 구적 규칙에 의해 매우 동기가 부여됩니다.

  • 00:50:00 이 섹션에서는 정확도가 다른 두 가지 방법을 한 번에 제공하여 효율성을 목표로 하는 방법으로 인해 미분 방정식을 푸는 것이 얼마나 복잡할 수 있는지에 대해 비디오에서 설명합니다. 하나는 다른 것보다 더 정확하고 더 정확한 것을 사용하면 덜 정확한 것의 오류를 추정하는 데 도움이 될 수 있으며, 이는 일부 로컬 오류를 만족하면서 ODE를 풀 때 단계 크기를 조정하는 데 도움이 될 수 있습니다. 영상은 또한 속성이 다른 여러 유형의 방법이 있으며 안정성도 문제 해결 방법을 선택할 때 고려해야 할 요소라고 언급합니다. 마지막으로 비디오는 미분 방정식을 풀 때 순서의 중요성에 대해 간략하게 다룹니다.

  • 00:55:00 이 섹션에서 Nathanael Bosch는 상미분 방정식(ODE)을 풀기 위한 다양한 방법과 정확성과 복잡성 사이의 균형에 대해 설명합니다. 그는 추정의 단일 단계에서 오류를 측정하는 로컬 오류의 중요성과 단계 크기를 더 작게 만들어 오류를 줄이는 방법을 강조합니다. 그런 다음 Hard Euler 및 Explicit Midpoint 방법과 같은 다양한 방법에 대해 설명하며 각각 고유한 순서 및 오류 수렴 속도가 있습니다. Bosch는 또한 단계 크기 선택 및 자동 서버 선택과 같이 ODE를 해결하기 위해 라이브러리를 사용하는 것과 함께 제공되는 다양한 종소리와 휘파람을 다루지만 문제가 발생할 때 잠재적인 문제를 피하기 위해 안정성과 순서를 이해하는 것이 여전히 중요하다고 경고합니다.

  • 01:00:00 비디오의 이 섹션에서 연사는 기계 학습 기술을 사용하여 데이터에서 상미분 방정식(ODE)의 벡터 필드 및 초기값을 추정하는 문제에 대해 논의합니다. 그는 관찰된 데이터에 ODE를 맞추는 매개변수 베타, 감마 및 람다를 추정하는 것이 목표인 역학 모델의 예를 제공합니다. 발표자는 추론 문제를 해결하기 위해서는 ODE의 상태에 대한 생성 모델과 관찰 모델을 작성하는 것이 필수적이라고 설명합니다. 그는 매개변수를 추정하면 데이터를 생성한 프로세스를 더 잘 이해할 수 있고 문헌에 대해 추론된 매개변수를 교차 확인하면 추가 통찰력을 얻을 수 있다고 지적합니다.

  • 01:05:00 이 섹션에서 화자는 매개변수 추론의 문제와 상미분 방정식(ODE)을 풀기 위한 최대 우도 추정값을 계산하는 방법에 대해 논의합니다. 우도 함수는 실제 X를 얻을 수 없다는 가정으로 인해 평가할 수 없는 가우시안의 곱이므로 근사가 필요합니다. 솔버가 충분하다고 가정함으로써 화자는 실제 솔루션에 대한 추정 솔루션을 연결하면 평가 가능한 항이 생성됨을 보여줍니다. 그런 다음 우도 함수는 음의 로그 우도를 최소화하여 최대화되고 결과 손실 함수는 매개변수 추정값을 산출합니다. 연사는 처음에 감염된 개인의 수가 알려지지 않았고 추정해야 하는 SIR-D 모델을 사용하는 예를 들어 결론을 내립니다.

  • 01:10:00 이 섹션에서는 화자가 상미분 방정식(ODE) 모델에서 매개변수 추론을 수행하는 방법에 대해 설명합니다. ODE 모델 시뮬레이션은 잡음이 있는 샘플을 취하여 수행되며 두 매개변수는 산점도의 선을 실제 데이터와 비교하여 계산되는 손실 함수를 형성하는 데 사용됩니다. 옵티마이저는 초기 추측과 매개변수를 반복하는 데 사용되고 L-BFGS 옵티마이저는 출력 데이터를 생성하는 데 사용됩니다. 결과 데이터는 문헌과 비교할 수 있는 모델 및 해당 매개변수를 해석하는 데 사용할 수 있습니다. 그런 다음 접촉 속도를 시변으로 만들어 모델을 개선하여 약간 더 복잡하게 만들고 매개변수 추론의 전체 프로세스를 다시 수행합니다.

  • 01:15:00 이 섹션에서 Nathanael Bosch는 ODE에서 시간에 따라 변하는 접촉률 추정치를 설명하는 t의 베타 추정 문제에 대해 논의하고 추정 문제를 해결하기 위한 더 나은 도구의 필요성을 강조합니다. 이를 해결하기 위해 그는 신경망을 사용하여 t의 베타를 모델링하고 매개변수 추론에서 L2 손실 함수를 최소화할 것을 제안합니다. 신경망 접근 방식은 해석하기 어렵고 좋은 불확실성 추정치를 제공하지 않지만 접촉률에 대한 점 추정치를 제공합니다. 또한 결과는 신경망 접근 방식이 GP 모델의 적합성과 일치하도록 여전히 상당한 개선이 필요하며 결과의 불확실성을 고려해야 함을 시사합니다.

  • 01:20:00 이 섹션에서 발표자는 ODE를 풀기 위해 신경망을 사용하는 접근 방식에 대해 논의하고 이 방법을 사용하여 불확실성 정량화를 쉽게 사용할 수는 없지만 여전히 유효한 개념적 접근 방식이라고 언급합니다. 최대 가능성 추정이 논의되고 불확실성 정량화를 제공하기 위해 사전 및 샘플링을 추가할 가능성이 언급됩니다. 발표자는 확률론적 수치 ODE 솔버의 향후 주제에 대해 논의하고 기계 학습 연구에서 ODE의 중요성과 실제 문제 해결에서 ODE의 역할을 강조합니다. 신경망 ODE는 또한 보다 일반적이고 구조가 없는 접근 방식으로 간략하게 언급되지만 손실 함수와 훈련 절차가 유사합니다.
 

강의 7 -- 확률적 수치 ODE 풀이 -- Nathanael Bosch



ML 7의 수치 -- 확률적 수치 ODE 풀이 -- Nathanael Bosch

이 비디오에서 Nathanael Bosch는 상태 추정과 수치 ODE 솔버를 결합하여 상태 또는 ODE 솔루션에 대한 분포를 제공하는 확률적 수치 ODE 솔버의 개념을 제시합니다. Bosch는 Q 시간 통합 Wiener 프로세스를 사용하여 실제 솔루션을 모델링하는 방법과 이 프로세스가 시스템의 불확실성을 정량화하고 전파하는 방법을 설명합니다. 그런 다음 확장 칼만 필터를 사용하여 ODE를 해결하는 방법과 단계 크기가 오류 추정에 미치는 영향을 보여줍니다. 비디오는 비선형 상태 공간 모델에서 매개변수를 추정하기 위해 불확실성 교정 및 확장 칼만 필터 사용에 대한 논의로 끝납니다.

강의의 두 번째 부분에서 Nathanael Bosch는 ODE를 풀기 위해 확률론적 방법을 사용하는 이점에 대해 이야기합니다. 여기에는 의미 있는 불확실성 추정값을 얻는 것과 초기 값과 같은 추가 모델 기능을 포함하는 유연성이 포함됩니다. 그는 고조파 발진기 및 미분 대수 방정식과 같은 예제를 통해 이 접근 방식을 보여줍니다. Bosch는 또한 전통적인 스칼라 방법을 사용하여 데이터를 정확하게 표현하지 못한 전염병 모델의 예를 사용하여 추가 정보를 포함하고 확률적 기법을 사용하여 어떻게 더 의미 있는 결과로 이어질 수 있는지 보여줍니다. 그는 상태 추정을 통해 ODE를 풀기 위해 확장 칼만 필터와 스무더를 사용하고 추정을 확률 문제로 취급하며 의사 결정에서 베이지안이 되는 것의 중요성을 강조합니다.

  • 00:00:00 이 섹션에서 Nathanael Bosch는 확률 수치 ODE 솔버의 개념을 소개합니다. 그는 상태 공간 모델과 상태 추정을 위한 일반 필터/스무더, 수치 ODE 솔버를 포함하여 이전 강의를 요약하는 것으로 시작합니다. 그는 미분 방정식이 주어진 ODE 솔루션의 상태를 추정하는 것이 과제이며 수치 ODE 솔버는 근사값만 제공한다고 설명합니다. 그런 다음 Bosch는 ODE를 상태 추정 문제로 해석하고 데이터 추정 문제로 해결하여 두 개념을 결합하는 방법을 제안합니다. 결과 알고리즘은 상태 또는 ODE 솔루션에 대한 분포를 제공하여 기존 서버보다 풍부한 출력을 제공하는 확률 수치 서버를 생성합니다.

  • 00:05:00 이 섹션에서는 확률 수치 ODE 솔버의 개념에 대해 설명합니다. 이러한 솔버는 벡터 필드의 평가를 통해 단일 추정 X 모자를 제공하여 단계 크기에 따라 달라지는 오류가 있는 미래 시점으로 추정을 업데이트하거나 확장함으로써 진정한 솔루션을 추정합니다. 그런 다음 수치 ODE 추정 문제를 해결하기 위한 도구로 특수 상태 추정을 사용하는 것으로 논의가 진행됩니다. 그런 다음 필터링 분포, 평활화 사후 분포 및 현재 정보가 주어진 미래 상태를 추정하는 예측 단계를 설명하고 확장 칼만 필터 및 확장 칼만 스무더와 같은 알고리즘을 이러한 수량을 계산하는 간단한 방법으로 언급했습니다. 이 섹션은 수치 ODE 솔루션이 실제 참 솔루션을 계산하려고 시도하기보다는 추론 문제로 표현될 수 있고 목표는 초기 조건을 만족하는 x의 사후값을 찾는 것이며 불연속 방정식에서 ODE라는 아이디어로 결론을 내립니다. 포인트 세트.

  • 00:10:00 이 섹션에서는 확률적 수치 ODE 솔버를 위한 상태 공간 모델 구성에 대해 자세히 설명합니다. 우리가 고려하는 상태는 Q번 통합 Wiener 프로세스입니다. 이 상태는 동적 시스템을 설명하고 Q까지 미분을 추적하는 확률적 프로세스입니다. 제한된 수의 미분을 추적함으로써 시스템의 불확실성을 정량화하고 전파할 수 있는 확률적 상태 모델을 얻을 수 있습니다. 주요 목표는 일단 해결되면 출력의 추정치를 제공할 사전, 우도 및 데이터 모델을 정의하는 것입니다. 이것은 추론을 위한 빠른 알고리즘인 가우시안 필터링 및 스무딩을 수행하는 데 필요합니다.

  • 00:15:00 이 섹션에서 Nathanael Bosch는 Q 시간 통합 우승자 프로세스의 진정한 솔루션을 모델링하는 확률 프로세스를 설명합니다. 이 과정은 H의 행렬 a와 닫힌 형태의 수식을 갖는 H의 공분산 행렬 Q를 사용하는 가우시안 모델의 형태로 전이를 가집니다. 프로세스의 항목에 액세스하는 것은 선형 작업이므로 1차 및 2차 도함수에 편리하게 액세스할 수 있습니다. 이 프로세스는 마코비안이며 가우시안 프로세스의 속성을 만족합니다. Bosch는 또한 프로세스의 다양한 샘플에 대한 도표를 보여줍니다. 이는 2회 통합 선형 프로세스라고 불리는 이유를 보여줍니다.

  • 00:20:00 이 섹션에서 발표자는 Q 곱하기 통합 Ornstein-Uhlenbeck 사전과 나중에 가우시안 필터링 및 평활화에 필요한 전이 밀도를 기록할 수 있기 때문에 얼마나 편리한지에 대해 설명합니다. 우도와 데이터 조합 부분도 상위에서 원하는 것을 하기 전에 알려주기 때문에 중요하다. 화자는 ODE의 언어를 사용하는 방법을 보여주고 무한 컴퓨팅이 있는 완벽한 세상에서 0이 되어야 하는 측정 함수 또는 정보 연산자를 정의합니다. 그들은 또한 관찰 모델을 소개하고 그것이 추론을 위해 원하는 것을 만족시키는 데 도움이 되는 이유를 설명합니다. 마지막으로 잡음 없는 우도 모델은 칼만 필터 업데이트를 염두에 두고 있기 때문에 편리한 직접 우도입니다.

  • 00:25:00 이 섹션에서 Nathanael Bosch는 로지스틱 ODE의 구체적인 예인 Z에 대한 생성 모델과 이것이 추론 프로세스와 어떻게 관련되는지에 대해 설명합니다. 생성 모델은 솔루션의 시뮬레이션, 도함수 계산 및 Z 주변에서 붕괴되는 사후 생성을 허용합니다. 이 생성 모델은 미분 방정식을 인코딩하는 우도 모델 외에도 상태 공간 모델을 풀고 솔루션과 관련된 X에 대한 추정치를 제공합니다. 추론을 통해 이전 결과와 원하는 최종 결과 간의 관계를 설정할 수 있으며 상태 공간 모델을 해결할 수 있습니다.

  • 00:30:00 이 섹션에서 Nathanael Bosch는 확률적 수치 방법을 통해 상미분 방정식을 풀 때 초기값을 포함하는 것의 중요성에 대해 설명합니다. 그는 관찰 모델에 초기 값에만 의존하는 다른 측정을 추가하는 것이 초기 값을 포함하는 보다 일반적인 방법이라고 설명합니다. 그런 다음 그는 알고리즘을 구현하는 데 필요한 확장 칼만 필터 및 ODE 필터 빌딩 블록에 대한 의사 코드를 제공하고 예측 및 업데이트 단계와 관련된 표준 필터링 루프를 설명합니다. 확장된 알고리즘은 초기 값을 먼저 만족시키고 전환 모델 A 및 Q를 사용하여 단계 크기를 계산합니다.

  • 00:35:00 이 섹션에서 Nathanael Bosch는 Julia의 확률 수치 방법을 사용하여 상미분 방정식(ODE)을 푸는 데 필요한 코드를 보여줍니다. 공식이 복잡해 보일 수 있지만 모델을 올바르게 설정하는 데 필요한 10줄의 코드는 간단합니다. Bosch는 확장된 Kalman 필터가 단 두 줄의 코드로 구현되고 역으로 곱하기 위한 표준 표기법이 선형 시스템을 푸는 수치적으로 안정적인 솔루션으로 대체되는 방법을 보여줍니다. 그는 로지스틱 ODE에 대한 벡터 필드, 초기 시간 범위 및 실제 솔루션을 정의하고 두 번 통합된 Wiener 프로세스를 사용하여 이전을 정의하는 방법을 보여줍니다. Bosch의 확장 칼만 필터 알고리즘 구현은 슬라이드의 의사 코드와 거의 일치하며 그가 사용하는 초기 분포는 임의로 0 평균 및 표준 공분산으로 설정됩니다.

  • 00:40:00 이 섹션에서 Nathanael Bosch는 확장 칼만 필터를 사용하여 ODE를 풀고 필터 추정치를 플로팅하는 방법을 보여줍니다. 그런 다음 단계 크기를 가지고 놀면서 단계 크기가 작을수록 불확실성이 감소하고 단계 크기가 클수록 불확실성이 증가하는 방법을 보여줍니다. 그는 불확실성이 시간이 지남에 따라 커지는 것이 아니라 오류 추정치가 발생하는 오류의 모델이라고 설명합니다. 마지막으로, 그는 스무딩이 일반적으로 궤적의 결과를 개선한다는 것을 보여줍니다. 이는 이전 두 강의의 동기와 일치합니다. 그러나 오류 추정은 훨씬 더 잘할 수 있지만 그렇게 하는 방법에 대한 의견을 청중에게 요청합니다.

  • 00:45:00 이 섹션에서는 확률적 수치 ODE 솔버에 대한 오류 추정치가 너무 커서 불확실성 보정을 통해 수정해야 함을 배웁니다. 하이퍼파라미터 시그마 제곱은 불확실성에 직접적인 영향을 미치며 의미 있는 실제 불확실성 추정치를 얻기 위해 적절하게 설정해야 합니다. 하이퍼파라미터를 설정하는 동기는 가우시안 프로세스에서와 유사하며, 여기서 하이퍼파라미터는 파라미터가 주어진 데이터의 우도를 최대화하여 추정됩니다. 데이터의 확률을 분해할 수 있어 표현 및 최적화가 편리합니다.

  • 00:50:00 이 섹션에서 Nathanael Bosch는 확장 칼만 필터를 사용하여 비선형 상태 공간 모델에서 매개변수를 추정하는 방법에 대해 설명합니다. K 빼기 1이 될 때까지 Z1이 주어진 z K의 P는 가우시안 추정을 사용하여 추정되고 시그마 모자는 준 최대 우도 추정의 argmax로 계산됩니다. ODE 필터에서 매개변수 추정값을 재조정하는 재조정 방법을 사용하여 닫힌 형식으로 최대 우도 추정값을 계산할 수 있습니다. 이 방법은 더 나은 추정치를 생성하고 최대 우도 추정 시그마에 해당합니다. Bosch는 보정 접미사가 있는 업데이트 기능을 사용하여 이를 구현하는 방법을 설명합니다.

  • 00:55:00 이 섹션에서 Nathanael Bosch는 확률 수치 상미분 방정식(ODE) 솔버를 위한 확장 칼만 필터(EKF)에 대해 설명합니다. 그는 시그마 해치를 늘리도록 수정되어 실행 방식으로 합계가 계산되고 계산하려는 양인 n으로 나누어진다고 언급합니다. EKF는 이전에 가우시안이 아닐 수 있는 무언가를 근사화하려고 시도했으며 목표는 가능한 한 유익한 불확실성 추정치를 얻는 것입니다. 그렇게 함으로써 그들은 ODE 솔버의 수치 오류를 의미 있게 설명하는 유용한 오류 추정치를 제공하는 알고리즘을 갖게 되었습니다. 얻은 알고리즘은 빠르고 완벽하지는 않지만 여전히 유용한 불확실성 추정치를 제공합니다.

  • 01:00:00 이 섹션에서 Nathanael Bosch는 ODE를 풀기 위해 확률적 방법을 사용하는 동기를 설명합니다. Bosch는 단순히 불확실성을 정량화하고 의미 있는 불확실성 추정치 및 도표를 얻는 것 외에도 확률론적 방식으로 ODE 솔버를 공식화하는 것이 유연하고 편리하여 초기 값과 같은 추가 모델 기능을 포함할 수 있다고 믿습니다. 상태 공간 모델을 정의하고 확장된 Kalman 필터를 실행하면 초기 값으로 수치 문제를 풀 수 있을 뿐만 아니라 추가 정보로 고차 ODE를 풀 수 있습니다.

  • 01:05:00 이 섹션에서 Nathanael Bosch는 ODE 솔버의 초기값에 대한 다른 접근 방식을 설명합니다. 그는 X1이 주어진 초기 도함수와 동일한지 확인하기 위해 새로운 수량을 정의하며, 이는 일부 예측 및 업데이트 단계로 확장된 명령 필터를 실행하는 데 사용할 수 있습니다. 그는 고조파 발진기의 예와 1차 미분에 대한 업데이트를 포함하기 위해 이전에서 두 개의 라인만 변경하면 되는 방법을 보여줍니다. 의미 있는 결과를 위해 보정이 다시 적용되며, 이 경우 오류는 경향이 있는 어트랙터가 없기 때문에 0으로 경향이 없지만 대신 문제 설정에 따라 조정됩니다. Bosch는 미분 대수 방정식에 대해서도 설명합니다. 이 방정식은 단일 행렬로 인해 왼쪽에서 오른쪽으로 이동할 수 없는 미분 방정식입니다.

  • 01:10:00 이 섹션에서 발표자는 미분을 설명하지 않고 특정 지점에서 일정한 값을 갖는 방정식인 미분 대수 방정식(DAE)의 개념에 대해 설명합니다. 발표자는 확률적 방식으로 DAE를 풀 수 있는 DAE 우도 알고리즘을 만들기 위해 ODE 우도 알고리즘에 대한 수정을 제안합니다. 그런 다음 화자는 ODE에 추가 정보가 있는 문제의 예를 제공하고 추가 관찰 모델을 도입하기 위해 상태 공간 모델에 대한 수정을 제안하여 알고리즘이 이산 그리드에서 g를 충족하기 위해 두 관찰 모델을 모두 적용할 수 있도록 합니다. 연사는 ODE 및 추가 정보로 문제를 풀 때 보존량의 중요성을 설명하는 비디오 예제를 제공합니다.

  • 01:15:00 비디오의 이 섹션에서 Nathanael Bosch는 확률적 수치 ODE 솔버의 사용과 ODE 모델의 결과를 개선하기 위한 추가 정보 포함의 이점에 대해 설명합니다. 그는 전통적인 스칼라 모델이 데이터를 정확하게 표현하지 못하는 전염병 모델의 예를 제시하고 가우시안 프로세스를 사용하여 모델을 개선하는 방법을 보여줍니다. 더 많은 정보를 추가하고 확률적 기법을 사용하면 궁극적으로 더 의미 있는 결과를 얻을 수 있습니다.

  • 01:20:00 이 섹션에서 Bosch는 선형 측정 연산자를 사용하여 4차원 객체(sirnd)로 표현되는 ODE 솔루션의 특정 차원을 측정하는 것과 관련된 확률적 수치 ODE 솔버에 대해 설명합니다. 상태 공간 모델을 만든 후 베타 상태를 추가하여 ODE 솔루션을 풀고 ODE 솔루션의 우도 모델, 초기 값 및 데이터를 고려합니다. 추론 작업에는 확장된 칼만 필터를 사용하여 관찰된 데이터의 검은색 점이 주어졌을 때 흰색 점이 무엇인지 결정하는 작업이 포함됩니다. 또한 더 간단한 재구성을 위해 X와 베타를 병합하는 것이 좋습니다.

  • 01:25:00 이 섹션에서 발표자는 추정을 확률적 문제로 취급하여 상태 추정을 통해 ODE를 푸는 본질적인 방법인 확률적 수치 ODE 솔버의 작동 방식을 설명합니다. 그는 "ODE 필터"라고도 하는 다양한 솔버로 연결되는 확장 칼만 필터 및 스무더를 사용하여 ODE를 푸는 방법을 정의합니다. 연사는 의사 결정에서 베이지안이 되는 것의 중요성, 불확실성 추정의 유용성, ODE 해결을 포함하여 다양한 문제에 적용할 수 있는 환자 알고리즘 사용의 편의성을 강조합니다.

  • 01:30:00 이 섹션에서 발표자는 비표준 방식으로 외부 명령 필터를 사용하여 수치 문제를 해결하고 물리학 및 일반적인 외부 관찰을 결합하는 방식으로 데이터에서 추론을 수행하는 방법에 대해 이야기합니다. 연사에 따르면 베이지안 필터링 및 평활화는 정보의 유연한 추가 및 추론 알고리즘의 분해를 허용하므로 동적 시스템을 모델링하거나 공식화하는 가장 좋은 방법입니다. 청중은 피드백을 위해 QR 코드를 스캔하도록 권장되며 연사에 대한 질문은 환영합니다.
 

강의 8 -- 편미분 방정식 -- Marvin Pförtner



ML 8의 수치 -- 편미분 방정식 -- Marvin Pförtner

Marvin Pförtner는 편미분 방정식(PDE)과 다양한 실세계 시스템 모델링에서의 중요성에 대해 설명합니다. 그는 PDE가 알려지지 않은 함수와 선형 미분 연산자가 있는 시스템의 메커니즘을 어떻게 나타내지만 종종 알려지지 않은 매개변수를 해결해야 하는지 설명합니다. 가우스 프로세스 추론을 사용하여 PDE 모델을 분석하고 기계적 지식을 통계 모델에 주입할 수 있습니다. Pförtner는 모델을 2차원 열 분포로 제한하고 모델에 대한 가정을 제시함으로써 컴퓨터 중앙 처리 장치의 열 분포를 조사합니다. 이 강의에서는 또한 가우시안 프로세스를 사용하여 PDE를 해결하고 불확실성 모델링을 위한 현실적인 경계 조건을 추가하는 방법도 다룹니다. 전반적으로 정보 연산자의 개념과 결합된 GP 접근 방식을 통해 시스템 동작에 대한 사전 지식을 통합하고 선형 PDE의 형태로 기계적 지식을 주입하고 경계 조건과 우변을 처리할 수 있습니다.

이 비디오의 두 번째 부분에서 Marvin Pförtner는 가우스 프로세스를 사용하여 점 추정이 아닌 함수에 대한 확률 측정을 추정하여 편미분 방정식(PDE)을 푸는 방법에 대해 설명합니다. 그는 불확실성 정량화의 이점을 설명하고 이 접근 방식이 PDE의 오른쪽 함수 추정의 불확실성을 인정하기 때문에 더 정직하다고 지적합니다. Pförtner는 또한 실제로 유용하고 GP의 미분 가능성을 제어할 수 있는 Matern 커널을 설명하고 Matern 커널에 대한 매개변수 P를 계산하는 공식을 제공합니다. 그는 또한 차원에 대한 1차원 Matern 커널의 곱을 취하여 PDE용 d차원 커널을 구성하는 방법과 모델 구성에서 수학적으로 주의하는 것의 중요성에 대해 설명합니다.

  • 00:00:00 강의의 이 섹션에서 Marvin Pförtner는 편미분 방정식(PDE)과 금융 시장, 기후 및 날씨와 같은 유체, 파동 역학을 포함하여 실제 세계에서 데이터를 생성하는 기계 모델을 설명하는 데 있어 그 중요성을 소개합니다. . 선형 PDE는 해결하기가 쉽지 않음에도 불구하고 브라운 운동의 열전도, 전자기 및 입자 속도와 같은 많은 물리적 프로세스를 정확하게 설명하므로 계속해서 강력한 모델링 언어입니다. 강의는 실용적인 모델링 예제를 통해 PDE 기반 모델을 확률론적 기계 학습 모델에 통합하는 데 특히 중점을 둡니다.

  • 00:05:00 이 섹션에서 Marvin Pförtner는 편미분 방정식(PDE)을 사용하여 물리적 및 재무 모델을 비롯한 다양한 시스템을 모델링하는 방법에 대해 설명합니다. 그는 시스템 메커니즘의 동작을 이해하고 PDE 모델을 사용하여 해당 동작을 추론하는 것의 중요성을 강조합니다. 그러나 PDE에는 종종 알 수 없는 시스템 매개변수가 필요하며 목표는 베이지안 통계 추정을 사용하여 시스템의 기계론적 지식을 측정 데이터와 융합하여 이러한 알 수 없는 매개변수를 찾고 예측에 대한 확신을 얻는 것입니다. Marvin은 또한 선형 PDE와 이들이 공간 범위를 가진 물리적 시스템과 어떻게 관련되는지 설명합니다.

  • 00:10:00 이 섹션에서는 Marvin Pförtner가 편미분 방정식(PDE)에 대해 설명합니다. PDE는 온도 분포 또는 일련의 전하에서 생성되는 힘과 같은 물리적 시스템을 설명하는 데 일반적으로 사용됩니다. PDE의 알 수 없는 함수는 시뮬레이션 중인 시스템을 나타내며 기계적 지식은 선형 미분 연산자에 의해 제공됩니다. 그러나 PDE의 문제는 일반적으로 분석 솔루션이 없고 이산화 오류를 발생시키는 수치 솔버가 필요하다는 것입니다. 재료 매개변수와 오른쪽 함수는 정확히 알 수 없는 매개변수 중 두 가지로, 기존 솔버를 통해 불확실성을 전파하는 데 어려움이 있습니다. 또한 PDE는 일반적으로 솔루션을 고유하게 식별하지 않으므로 추가 조건을 부과해야 합니다.

  • 00:15:00 이 섹션에서 연사는 편미분 방정식(PDE)과 무한 차원 개체인 함수와의 관계에 대해 설명합니다. 미분 연산자는 선형입니다. 즉, 선형 함수가 미분 연산자의 핵심에 있으므로 포아송 방정식의 모든 솔루션에 선형 항을 추가하고 여전히 솔루션을 얻을 수 있습니다. 경계 조건은 시뮬레이션 도메인 외부의 상호 작용을 모델링하는 데 필요하며, 이는 외부가 경계에서 시뮬레이션과 상호 작용하는 방식으로 요약됩니다. PDE는 행렬에 의한 선형 연산자의 표현을 허용하는 Rn과 유사한 벡터 공간 구조를 갖는 함수 집합인 함수 공간에 속하는 함수에 대한 설명입니다. 선형 연산자는 미분 연산자가 함수를 도함수에 매핑하기 때문에 선형성 속성이 있는 함수 공간 간의 매핑입니다.

  • 00:20:00 이 섹션에서 Pförtner는 선형 PDE가 본질적으로 무한 차원 벡터 공간에서 선형 시스템이라고 설명하고 벡터 공간에서 규범을 정의하고 수렴을 이해하는 것의 중요성을 전달합니다. 그런 다음 그는 컴퓨터 중앙 처리 장치의 열 분포에 대한 수학적 모델을 도입하고 모델을 칩을 통해 절단하는 라인의 2차원 열 분포로 제한합니다. 강의에서는 이 모델에 대한 가정과 이 특정 사례에 대한 좋은 모델인 방법에 대해 설명합니다.

  • 00:25:00 이 섹션에서 발표자는 칩의 열원 및 방열판 모델링과 편미분 방정식(PDE)을 사용하여 표현하는 방법에 대해 논의합니다. 그들은 2차 선형 PDE인 열 방정식과 칩의 온도 분포를 모델링하는 데 어떻게 적용할 수 있는지 설명합니다. 발표자는 또한 PDE를 미분 연산자 아래의 미지 함수 및 이미지의 관찰로 해석하여 미분 방정식의 기계론적 지식을 통계 모델에 주입할 수 있는 방법을 설명합니다. PDE는 에너지 및 질량과 같은 기본 수량의 보존을 설명하는 물리학의 기본 법칙과 비교됩니다.

  • 00:30:00 이 섹션에서 Marvin Pförtner는 온도와 열 에너지 사이의 관계와 재료 매개변수를 통해 서로 어떻게 비례하는지에 대해 설명합니다. 그는 열 에너지의 모든 변화는 시스템에 들어오는 알려진 열 값이나 열 전도를 통해 주변에서 특정 지점으로 흐르는 열로 설명할 수 있다고 설명합니다. 그런 다음 정보 연산자를 미분 방정식을 포함하여 모든 정보를 표현하는 데 사용할 수 있는 수학적 개념으로 소개합니다. 그는 미지의 함수 U를 모델링하기 위해 사전 가우시안 프로세스를 사용할 수 있는 방법과 선형 관찰 하에서 가우시안 프로세스 클로저를 사용하여 사후 프로세스를 계산하는 방법을 추가로 설명합니다. 그러나 PDE를 풀려면 무한한 관측치가 필요하기 때문에 풀고 있는 문제에 대한 분석 정보가 알려지지 않는 한 대부분의 경우 계산상 불가능합니다.

  • 00:35:00 이 섹션에서 발표자는 상미분 방정식(ODE)에서 사용되는 접근 방식과 유사한 편미분 방정식(PDE)을 풀기 위해 가우스 프로세스(GP)를 사용하는 방법에 대해 설명합니다. GP는 함수 공간에서 확률 측정으로 간주되며 선형 연산자는 해당 GP의 샘플 경로를 RN에 매핑합니다. 이 프로세스의 사전 예측은 선형 연산자를 통해 GP 평균 함수의 이미지에 의해 평균이 주어지는 정규 분포이고 공분산 행렬은 유한 차원의 경우에서 발견되는 공분산 행렬과 매우 유사합니다. 이 이벤트의 후방은 실제로 유사한 구조를 갖는 것으로 밝혀졌습니다. 연사는 많은 이론적 세부 사항이 관련되어 있으며 GP를 사용하여 PDE를 해결하는 것과 관련된 무한대로 인해 주의가 필요하다고 지적합니다.

  • 00:40:00 이 섹션에서 Marvin Pförtner는 선형 연산자의 특정 선택을 계산하는 방법과 이를 표준 선형 연산자 표기법으로 표현하는 데 따르는 어려움을 설명합니다. 그는 또한 한 인수를 미분하고 다른 인수를 미분하고 두 점 사이의 모든 쌍별 도함수의 행렬을 만드는 방법에 대해 설명합니다. 그런 다음 동일한 정리를 사용하여 문제에 적용하고 사후 가우시안 프로세스를 계산하는 방법과 배열 점 집합을 정의하는 방법에 대해 설명합니다.

  • 00:45:00 이 섹션에서 발표자는 일반화된 형태의 가우시안 프로세스 추론이 경계 값 문제를 해결할 수 있는 방법을 설명합니다. 그들은 편미분 방정식(PDE)의 우변과 일치하는 검은색 함수를 사용하여 관측값을 표현하는 방법과 여기에서 학습한 정보를 원래 가우시안 프로세스로 다시 전파할 수 있는 방법을 설명합니다. 경계조건이 고정하지 않는 PDE의 자유도는 불확실성을 유발할 수 있지만 Dirichlet 경계조건을 부과함으로써 사후는 정상적인 가우시안 프로세스 회귀 문제가 되며 두 경계값이 관찰되면 작동합니다. 발표자는 배포 시 경계 값이 일반적으로 알려지지 않았으며 경계 값과 열원 분포 모두에 불확실성을 추가하는 것이 도움이 된다는 점에 유의하는 것이 중요하다고 강조합니다.

  • 00:50:00 이 섹션에서 화자는 편미분 방정식에 대한 보다 현실적인 경계 조건에 대해 설명합니다. 그는 열이 CPU의 전체 표면에 걸쳐 균일하게 추출되며 이 정보는 경계점 값 대신 경계점의 1차 도함수를 설정하는 노이만 경계 조건으로 모델링할 수 있다고 말합니다. 그렇게 함으로써 모델에 불확실성을 추가하고 가우시안 분포를 사용하여 도함수를 모델링할 수 있습니다. 이 경계 조건을 설명하기 위해 추가 정보 연산자가 사용됩니다. 연사는 CPU 내의 온도계를 사용하여 시스템의 절대 규모를 결정하는 방법과 다른 가우시안 프로세스를 사용하여 사전 신념을 모델링하여 함수의 불확실한 추정치를 얻을 수 있는 방법을 추가로 설명합니다.

  • 00:55:00 이 섹션에서 Marvin Pförtner는 가우시안 프로세스 및 정보 연산자의 도움을 받아 시스템 동작에 대한 사전 지식을 모델에 통합하는 방법에 대해 설명합니다. 그는 시스템이 지속적으로 가열되는 것을 방지하기 위해 0으로 적분할 수 있는 모델의 오른쪽 함수를 선택하는 것이 필수적이라고 언급합니다. 그런 다음 Pförtner는 GP가 모든 샘플에서 영역 1을 갖도록 하는 문제와 경계를 통해 나가는 열을 고려하는 경계 효과를 포함하여 추가 제약 조건을 추가하여 문제를 해결할 수 있는 방법에 대해 논의합니다. 마지막으로 Pförtner는 정보 연산자의 개념과 결합된 이 GP 접근 방식을 통해 시스템 동작에 대한 사전 지식을 통합하고 선형 PDE의 형태로 기계적 지식을 주입하며 경계 조건과 우변을 처리할 수 있다고 결론지었습니다.

  • 01:00:00 이 섹션에서 Marvin Pförtner는 PDE(편미분 방정식)의 조건을 충족하는 신뢰 구간 및 샘플을 제공할 수 있는 점 추정 대신 함수에 대한 확률 측정을 추정하여 편미분 방정식(PDE)을 풀기 위해 가우시안 프로세스를 사용하는 방법에 대해 설명합니다. . 그는 이 접근법이 PDE의 우변 함수 추정의 불확실성을 인정하고 2D 시뮬레이션뿐만 아니라 시간을 또 다른 공간 차원으로 하는 시뮬레이션에 적용할 수 있기 때문에 더 정직하다고 설명합니다. Pförtner는 불확실성이 없다고 가정하는 이 방법의 사후 평균이 대칭 배열이라는 고전적인 방법과 동일하다고 지적합니다. 마지막으로 그는 가중 잔차, 유한 체적 및 스펙트럼 방법과 같은 PDE를 해결하기 위한 다른 방법도 불확실성 정량화 없이 가우시안 과정의 사후 수단으로 실현될 수 있다고 설명합니다.

  • 01:05:00 이 섹션에서 발표자는 가우시안 프로세스(GP)를 사용하여 선형 편미분 방정식(PDE)을 풀고 함수 추정을 위한 회귀를 실현할 수 있는 방법을 설명합니다. 그들은 불확실성 정량화의 이점뿐만 아니라 작업하기 전에 올바른 기능을 선택하는 것의 중요성을 강조합니다. 스피커는 또한 GP의 샘플 경로를 미분할 수 없는 경우와 같은 실패 사례와 모든 것을 엄격하게 만들기 위해 중요한 조건을 확인해야 하는 필요성에 주목합니다. 이 섹션은 이러한 정리의 공식적인 세부 사항을 탐구할 연사 그룹의 차기 간행물 티저로 끝납니다.

  • 01:10:00 이 섹션에서 발표자는 가우시안 프로세스(GP)가 정의되고 알 수 없는 함수를 모델링하는 데 사용되는 방법에 대해 설명합니다. GP는 도메인의 각 지점에 하나씩 있는 실제 값 임의 변수의 모음입니다. 함수를 나타내는 데 사용되지만 GP 평가의 유한한 조합만 알 수 있습니다. GP의 샘플 경로를 얻으려면 Omega를 고정하고 모든 함수를 통해 변환하여 함수를 지속적으로 샘플링해야 합니다. 우리는 샘플 경로가 정의되었는지 확인하기 위해 충분히 미분할 수 있는지 확인합니다. 또한 선형 연산자 L 아래 GP의 이미지인 LF를 계산하기 위해 Omega를 고정하고 해당 함수에 L을 적용합니다.

  • 01:15:00 이 섹션에서 발표자는 선형 연산자를 통해 샘플 경로를 매핑하여 GP라는 무한 차원 개체를 만드는 방법을 설명합니다. 이 개체는 나중에 측정 가능해야 하는 임의 변수로 변환됩니다. 그들은 GPS의 샘플 경로가 적절한 커널을 선택하여 재생 커널 Hilbert 공간으로 만들어지지만 실제 GP의 커널의 재생 커널 Hibbert 공간은 샘플이 오는 공간이 아니라 더 큰 공간이라는 점에 주목합니다. 이러한 샘플이 포함된 선택해야 합니다. 스피커는 계속해서 실제로 유용하고 GP의 미분 가능성을 제어할 수 있는 Matern 커널에 대해 논의하고 프로세스를 일반화하는 데 도움이 될 수 있는 Matern 커널의 매개변수 P를 계산하는 공식을 제공합니다.

  • 01:20:00 이 섹션에서 발표자는 특히 도함수의 혼합 차수가 있는 경우 차원에 대해 1차원 Matern 커널의 곱을 취하여 편미분 방정식(PDE)에 대한 d차원 커널을 구성하는 방법을 설명합니다. 이는 사용자가 해결하려는 구체적인 방정식에 적응하는 데 도움이 됩니다. 또한 GPS는 아핀 정보 연산자를 사용하여 다양한 정보 소스를 단일 회귀 모델로 결합하는 프레임워크를 제공합니다. 화자는 특히 특정 방정식에 대한 사전을 구성할 때 모델 구성에서 수학적으로 주의하는 것의 중요성을 강조합니다.