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

 

딥러닝 1: 텐서를 위한 역전파, 합성곱 신경망(MLVU2019)



7 딥러닝 1: 텐서를 위한 역전파, 합성곱 신경망(MLVU2019)

딥 러닝 및 역전파에 대한 비디오의 첫 번째 부분에서는 딥 러닝 프레임워크의 기본 사항, 텐서, 역전파 알고리즘 및 기울기 소실 문제를 비롯한 여러 주제를 다룹니다. 연사는 일련의 선형 대수 연산을 사용하여 신경망을 구현하는 방법과 역전파 알고리즘을 사용하여 모델을 함수의 구성으로 정의하는 방법을 설명합니다. 이 비디오는 또한 행렬 연산을 사용하여 도함수를 계산하는 방법을 다루고 가중치 초기화 및 ReLU를 활성화 함수로 사용하는 것과 같은 기울기 소실 문제에 대한 솔루션을 탐색합니다. 마지막으로 영상은 복잡한 신경망에서 활용할 수 있는 미니배치 경사하강법과 다양한 옵티마이저를 다룹니다.

이 두 번째 부분에서는 최적화 알고리즘 및 정규화 기술을 포함하여 딥 러닝과 관련된 다양한 주제를 다룹니다. Adam 최적화는 딥 러닝을 위한 인기 있는 알고리즘으로 설명되며 L1 및 L2 정규화는 과적합을 방지하는 방법으로 탐구됩니다. 이미지 처리에서 신경망의 잠재력에 대해서도 논의하며, 이미지 인식 작업을 위한 강력한 도구로 강조된 컨벌루션 신경망이 있습니다. 이 비디오는 또한 이러한 네트워크의 작동 방식과 복잡한 이미지를 인식하는 기능을 구축하는 방법, 여러 모듈을 함께 연결하는 한계를 극복하기 위한 방법으로 종단 간 학습의 개념에 대해 자세히 설명합니다.

  • 00:00:00 딥 러닝에 대한 비디오의 이 섹션에서 발표자는 신경망과 이러한 신경망이 계층으로 구성되는 방식과 같이 이전 세션에서 논의된 개념을 검토하는 것으로 시작합니다. 그런 다음 신경망이 본질적으로 시그모이드 함수와 같은 가끔 비선형 함수를 사용하는 일련의 선형 대수 단계에 불과하다는 점에 대해 논의합니다. 이것은 신경망 구현 프로세스를 단순화하고 보다 효율적인 훈련을 가능하게 하기 때문에 중요합니다. 연사는 또한 신경망이 훈련하기 어렵기 때문에 한동안 인기가 없었지만 다음 섹션에서는 역전파가 이 문제를 극복하는 데 어떻게 도움이 되는지 살펴볼 것입니다.

  • 00:05:00 이 섹션에서 동영상은 텐서 행렬 미적분학에 대한 이해와 역전파 알고리즘 재검토가 필요한 딥 러닝 시스템 또는 프레임워크의 기본 사항을 설명합니다. 발표자는 딥 러닝과 관련된 신경망 부담에도 불구하고 선형 대수 연산의 연속일 뿐이므로 그다지 특별하지 않다고 강조합니다. 신경망에 대한 일반 프레임워크를 개발하는 첫 번째 단계는 작업을 효율적이고 간단하게 정의하여 효과적으로 교육하기 쉽도록 하는 것입니다. 또한 그래픽 처리 장치 또는 비디오 카드를 사용하면 행렬 곱셈의 효율성으로 인해 작업이 약 20배 더 빨라집니다. 마지막으로 비디오는 컨볼루션 계층, 자동 인코더 및 딥 러닝의 철학적 측면에 대한 토론을 포함하여 강의 시리즈에서 다룰 나머지 주제를 간략하게 설명합니다.

  • 00:10:00 이 섹션에서 발표자는 딥 러닝에 사용할 수 있는 여러 숫자를 저장하는 데 사용되는 데이터 구조인 텐서에 대해 설명합니다. Tensor는 데이터 세트를 저장하는 데 사용되며 일반적으로 부동 소수점 숫자를 포함하는 모든 요소에 대해 동일한 데이터 유형을 가져야 합니다. 발표자는 각 색상 채널당 하나씩 3개의 그레이스케일 이미지 스택인 3-텐서에 이미지를 저장하는 방법과 이미지를 반복하는 또 다른 인덱스를 추가하여 4개의 텐서에 이미지 데이터 세트를 저장하는 방법을 설명합니다. 데이터 세트. 마지막으로 발표자는 딥러닝에서의 함수나 연산은 프로그래밍 언어와 같지만 텐서를 입력과 출력으로 하고, 로컬 그래디언트를 계산하는 역방향 계산도 순방향 계산과 함께 구현된다고 설명합니다.

  • 00:15:00 이 섹션에서 동영상은 역전파 알고리즘과 이를 함수의 구성으로 신경망 모델을 정의하는 데 사용할 수 있는 방법에 대해 설명합니다. 전체 네트워크에 대한 그래디언트는 모든 함수의 모든 로컬 그래디언트의 곱으로 계산되며 역전파는 손실을 전체 계산 그래프에 전파하는 데 사용됩니다. 이 비디오에서는 계산 그래프를 정의하는 두 가지 방법(지연 실행 및 즉시 실행)이 있으며 지연 실행은 간단하지만 디버깅이나 연구에 적합하지 않다고 설명합니다. Eager 실행은 현재 PyTorch 및 TensorFlow와 같은 프레임워크의 기본값입니다. 사용자가 계산을 수행하여 계산 그래프를 정의할 수 있으므로 교육 중에 모델을 디버그하고 변경하기가 더 쉬워집니다.

  • 00:20:00 이 섹션에서 발표자는 계산 그래프와 스칼라 변수를 사용하여 그래프를 작성하는 방법에 대해 설명합니다. 그런 다음 컴퓨팅 그래프를 사용하여 프레임워크 내에서 신경망을 구현하는 방법에 대한 예를 제공합니다. 손실 값은 신경망을 통해 계산되고 손실 값에서 역 전파 프로세스가 시작되어 네트워크 매개 변수에 대한 기울기를 얻습니다. 기울기가 얻어지면 값에서 약간의 기울기를 빼서 기울기 하강법의 한 단계를 수행할 수 있습니다.

  • 00:25:00 이 섹션에서 연사는 딥 러닝 시스템에 대한 역전파의 두 가지 중요한 측면인 다중 계산 경로 처리와 텐서 작업에 대해 논의합니다. 연사는 여러 경로가 동일한 값으로 이어지는 계산 그래프에서 다이아몬드를 처리하기 위한 다변량 체인 규칙을 소개합니다. 또한 발표자는 모든 중간 값이 스칼라 값이 아닌 텐서인 역전파에서 텐서 작업의 중요성을 설명합니다. 목표는 더 빠른 계산을 가능하게 하는 행렬 연산 측면에서 도함수를 계산하는 것입니다. 발표자는 입력이 벡터인 스칼라를 출력하는 함수의 간단한 예를 사용하여 행렬에 대한 벡터의 미분을 취하는 방법을 시연하여 내적을 살펴봄으로써 함수를 최대한 단순하게 만듭니다.

  • 00:30:00 이 섹션에서 화자는 벡터와 행렬의 예를 사용하여 텐서의 도함수를 계산하는 방법을 설명합니다. 첫 번째 예는 벡터에 대한 스칼라의 도함수는 기울기인 숫자의 벡터일 뿐임을 보여줍니다. 그런 다음 두 번째 예는 행렬에 대한 벡터의 파생물이 단지 행렬임을 보여줍니다. 발표자는 가능한 모든 값을 취하여 행렬로 배열하면 원래 행렬 P가 된다는 점을 강조합니다.

  • 00:35:00 이 섹션에서 발표자는 함수의 도함수를 사용하여 벡터 입력 및 출력에 대한 가능한 스칼라 도함수 행렬과 고차 입력/출력에 대한 도함수의 텐서를 제공하는 방법을 설명합니다. 그러나 이러한 중간 값을 계산하는 것은 특히 벡터/행렬 조합을 처리할 때 어렵고 복잡할 수 있습니다. 이 프로세스를 단순화하기 위해 이러한 중간 값을 처리하는 대신 각 도함수를 왼쪽에서 오른쪽으로 순차적으로 계산하여 제품을 누적할 수 있습니다. 스피커는 함수의 역방향 구현이 입력으로서의 출력과 관련하여 손실의 도함수를 취하는 방법을 설명합니다.

  • 00:40:00 이 섹션에서 화자는 중간 제품을 제거하여 행렬 계산 측면에서 값을 계산하는 방법을 설명합니다. 그들은 모든 입력에 대한 모든 입력에 대한 도함수를 계산하고 계산 경로가 통과하도록 지시하고 결과를 합산하는 다변량 체인 규칙을 사용해야 합니다. K가 텐서이거나 고급 텐서인 경우에도 각 요소를 파생하고 합계를 더해야 하므로 그런 식으로 계산하는 것은 비효율적일 수 있으므로 행렬 곱셈의 요소를 i번째 행의 내적으로 추출합니다. W의 I번째 행과 X의 내적을 X로 한 W-times-X. 결국, 각 정방향 및 역방향 패스의 끝에서 손실 함수의 결과를 최소화하여 주어진 대상 변수와 일치하도록 각 추적 시퀀스를 최적화합니다. .

  • 00:45:00 딥 러닝 및 역전파에 대한 비디오의 이 섹션에서 연사는 다변량 체인 규칙 및 행렬 연산을 사용하여 도함수를 계산하는 방법에 대해 설명합니다. 가중치 행렬 W의 각 요소에 대한 도함수를 계산할 수 있으며 W에 대한 로컬 기울기는 두 벡터의 외적을 사용하여 파생됩니다. 다른 입력에 대해서도 동일한 프로세스를 따를 수 있습니다. 선형 계층의 순방향 계산은 WX + B를 사용하여 계산되며 역방향 계산은 행렬 곱셈을 사용하여 W, X 및 B에 대한 손실의 기울기를 계산하여 달성할 수 있습니다. 그러나 발표자는 대부분의 딥러닝 시스템에는 이미 역방향 기능이 구현되어 있으므로 사용자가 직접 계산할 필요가 없다고 말합니다.

  • 00:50:00 이 섹션에서 발표자는 기울기 소멸 문제가 90년대 딥 러닝의 가장 큰 걸림돌이었다고 설명합니다. 그들은 가중치가 너무 크거나 작아서는 안 되기 때문에 가중치 초기화 문제를 조사합니다. 그렇지 않으면 활성화 기능이 효과적으로 작동하지 않아 출력이 항상 0이 됩니다. 해결책은 임의의 직교 값 또는 두 개의 양수 값 사이의 균일한 분포의 샘플을 사용하여 네트워크의 가중치를 초기화하여 고유값이 1이 되도록 하는 것입니다. 이렇게 하면 출력의 평균과 분산이 동일하게 유지되므로 네트워크가 효과적으로 학습할 수 있습니다.

  • 00:55:00 이 섹션에서는 기울기가 점점 작아지고 네트워크가 학습하지 않는 Vanishing Gradient 문제와 같이 딥 러닝 네트워크에 시그모이드 함수를 사용할 때 발생하는 문제에 대해 비디오에서 설명합니다. 대신 비디오는 ReLU를 더 간단한 활성화 함수로 사용할 것을 제안합니다. 이 함수는 0보다 큰 입력에 대해 1의 항등 함수를 갖고 그렇지 않으면 0 도함수를 가지므로 그래디언트가 감소하지 않습니다. 이 비디오는 또한 작은 배치에 대한 손실을 계산하여 임의성과 병렬 처리를 허용하는 정규 및 확률적 경사 하강의 중간 버전인 미니 배치 경사 하강법을 소개합니다. 그러나 비디오는 GPU 메모리를 활용하고 더 빠르게 실행되는 더 큰 배치 크기와 최적의 결과를 생성하는 데 더 효과적인 더 작은 배치 사이에 균형이 있음을 경고합니다. 마지막으로, 비디오는 그래디언트 디센트의 개념을 활용하지만 복잡한 신경망에서 발생할 수 있는 다양한 그래디언트를 설명하기 위해 약간 조정하는 다양한 옵티마이저를 다룹니다.

  • 01:00:00 이 섹션에서 강사는 매우 작은 로컬 최소값을 처리하고 거친 손실 표면을 평활화하는 세 가지 방법인 운동량, Nesterov 운동량 및 Adam을 다룹니다. 운동량 이면의 기본 직관은 기울기를 중력과 유사한 힘으로 취급하고 모델을 언덕 아래로 굴러가는 바위로 취급하여 손실 표면의 탐색을 처리하는 것입니다. Nesterov 모멘텀을 사용하면 모멘텀 단계를 먼저 적용한 다음 기울기를 계산할 수 있도록 작은 통찰력이 추가됩니다. Adam은 이 아이디어를 모델의 모든 매개변수가 고유한 손실 표면과 특정 방향으로 얼마나 적극적으로 이동해야 하는지에 대한 기본 설정이 있다는 아이디어와 함께 통합하므로 모델 공간의 차원별로 평균 그래디언트가 추정되고 그에 따라 업데이트가 조정됩니다. 기울기와 분산 모두에 대해 지수 이동 평균이 사용되며, 이는 평균에 추가되는 이전 기울기의 영향을 허용합니다.

  • 01:05:00 이 섹션에서는 동영상에서 딥 러닝의 옵티마이저 및 정규화에 대해 설명합니다. Adam은 딥 러닝에서 잘 작동하는 경사 하강법에 약간 적응한 최적화 알고리즘으로 설명됩니다. 여러 하이퍼파라미터가 있으며 기본 설정이 잘 작동합니다. 정규화는 데이터를 기억할 여지가 많은 큰 모델에서 과적합을 방지하는 기술로 논의됩니다. L2 정규화에는 가중치 텐서 벡터의 길이를 곱한 하이퍼파라미터를 손실에 추가하여 시스템이 가중치가 더 작은 모델을 선호하도록 합니다. L1 정규화도 이 아이디어를 따르지만 텐서 벡터의 L1 표준을 사용하여 거리를 계산하여 손실 표면 모서리를 제공합니다. L1 regularizer는 시스템이 출력에 영향을 주지 않는 연결을 제거할 수 있는 희소 솔루션을 선호합니다.

  • 01:10:00 이 섹션에서 연사는 모델의 과적합을 방지하는 데 사용되는 기술인 딥 러닝의 정규화 개념을 설명합니다. 정규화는 모델이 보이지 않는 데이터로 잘 일반화되도록 하는 데 도움이 됩니다. L1과 L2는 딥 러닝에서 널리 사용되는 두 가지 정규화 유형입니다. L2 정규화는 모델을 원점으로 끌어당겨 가중치가 너무 커지는 것을 방지하는 반면, L1 정규화는 가장자리를 따라 홈을 생성합니다. 드롭아웃에 대해서도 설명하는데, 여기에는 교육 중에 숨겨진 노드를 임의로 비활성화하고 모든 노드가 여러 정보 소스를 고려하도록 강제합니다. 마지막으로 연사는 이미지를 소비하고 텍스트를 생성하는 단일 신경망을 포함하여 딥 러닝의 성과를 강조합니다.

  • 01:15:00 이 섹션에서는 동영상에서 신경망을 사용하는 다양한 이미지 처리 기술에 대해 설명합니다. 흥미로운 기술 중 하나는 신경망이 주어진 그림의 스타일을 사용하여 사진을 변형할 수 있는 스타일 전송입니다. 이미지 대 이미지 변환은 네트워크가 채도가 낮거나 가장자리에서 감지된 이미지를 사용한 교육을 기반으로 누락된 이미지 조각을 생성하는 방법을 학습하는 또 다른 기술입니다. 컨벌루션 레이어는 가중치를 공유하고 이미지 처리에 특히 중요한 매개변수 공간을 줄임으로써 네트워크를 보다 효율적으로 만드는 데 도움이 됩니다. 전반적으로 비디오는 이미지 처리에서 신경망의 놀라운 잠재력을 강조하지만 최상의 결과를 달성하기 위해 도메인 지식을 기반으로 아키텍처를 신중하게 설계하는 것의 중요성을 강조합니다.

  • 01:20:00 이 섹션에서는 화자가 이미지 인식 및 분류 작업에 일반적으로 사용되는 일종의 피드포워드 인공 신경망인 컨벌루션 신경망의 작동 방식을 설명합니다. 이러한 네트워크의 핵심 아이디어는 공유 가중치를 사용하여 매개변수 수를 제한하고 최대 풀링 계층을 사용하여 이미지의 해상도를 줄이는 것입니다. 그것들은 입력 이미지를 필터링하고 수정된 채널로 출력 이미지를 생성하기 위해 커널이라고 하는 슬라이딩 윈도우를 사용하는 하나 이상의 컨볼루션 레이어가 뒤따르는 일련의 완전히 연결된 레이어로 구성됩니다. 이러한 컨볼루션 및 최대 풀링 레이어를 함께 연결하고 일부 완전히 연결된 레이어를 추가하면 매우 정확한 결과를 생성하는 기본 이미지 분류 네트워크를 만들 수 있습니다.

  • 01:25:00 이 섹션에서 발표자는 어떤 종류의 입력이 높은 응답을 트리거하는지 확인하기 위해 네트워크의 높은 노드를 살펴봄으로써 컨벌루션 신경망이 실제로 수행하는 작업을 시각화하는 방법에 대해 논의합니다. 네트워크의 첫 번째 레이어는 대부분 에지 감지에 응답하고 다음 레이어는 개별 에지를 피처로 조립합니다. 이 프로세스는 계속 진행되며 점진적으로 표현을 구축하고 전체 얼굴로 끝납니다. 신경망이 어떻게 작동하는지 자세히 알아보기 위해 연사는 특정 뉴런이 활성화되도록 입력을 최적화하여 추상 미술과 같은 이미지를 생성하는 방법을 설명합니다. 이러한 이미지를 검토하여 화자는 새와 같은 특징이나 개와 같이 뉴런이 반응하는 특징을 결정할 수 있습니다. 마지막으로 발표자는 전통적인 기계 학습과 딥 러닝의 주요 차이점은 파이프라인이 필요하지 않고 예를 들어 네트워크가 신문을 분석할 수 있는 엔드 투 엔드 학습의 아이디어라고 설명합니다. 다단계 프로세스.

  • 01:30:00 이 섹션에서 연사는 기계 학습 작업을 수행할 때 정확도가 높은 여러 모듈을 함께 연결하는 한계를 설명합니다. 각 모듈의 누적 오류는 다음 모듈에 대한 노이즈 입력을 생성하여 전체 시스템의 정확도를 크게 떨어뜨릴 수 있습니다. 그런 다음 이 문제를 해결하기 위한 솔루션으로 End-to-End 학습이 도입됩니다. 각 모듈에 대한 훈련을 분리하는 대신, 전체 파이프라인은 기울기 하강 방법을 사용하여 원시 데이터 엔드 투 엔드에서 학습하도록 전체적으로 훈련됩니다. 이를 통해 접근 방식이 더 유연해지고 딥 러닝 시스템이 더 광범위한 문제를 해결할 수 있습니다.
 

8 확률 2: 최대 우도, 가우시안 혼합 모델 및 기대 최대화(MLVU2019)



8 확률 2: 최대 우도, 가우시안 혼합 모델 및 기대 최대화(MLVU2019)

비디오의 이 섹션은 최대 우도 추정, 정규 분포, 가우시안 혼합 모델 및 예상 최대화 알고리즘을 사용하여 밀도 추정을 위한 확률 모델을 중심으로 합니다. 연사는 Maximum Likelihood 원칙을 설명하고 최상의 확률 모델을 선택하는 데 적용되는 방법을 보여주었습니다. 그들은 정규 분포를 탐색하고 확률과 확률 밀도 함수의 차이를 설명하고 가우시안 혼합 모델을 도입했습니다. 발표자는 또한 단변량 및 다변량 정규 분포에서 샘플링하는 방법과 가우시안 혼합 모델이 모집단 내에서 서로 다른 클러스터를 식별하는 데 어떻게 도움이 되는지에 대해 논의했습니다. 또한 가우시안 혼합 모델을 데이터 세트에 맞추기 위해 기대 최대화 알고리즘이 도입되었습니다. 또한 발표자는 Q 함수 근사를 사용하여 Expectation Maximization 접근 방식을 공식화하는 방법을 설명하고 로컬 최적값으로 수렴함을 증명했습니다.

이 비디오는 최대 우도, 가우시안 혼합 모델 및 기대 최대화(EM)의 주제를 다룹니다. 발표자는 EM 알고리즘, 그 증명 및 수렴하는 이유를 설명합니다. 또한 Q를 고정한 상태에서 세타를 선택하여 L을 최대화하는 M 단계에 대해서도 설명합니다. 가우시안 혼합 모델을 데이터에 맞추려면 EM 알고리즘을 사용해야 하며, 발표자는 클러스터링 및 탐색 분석과 같은 응용 프로그램과 가우시안 혼합 모델을 각 클래스에 맞춰 분류에 사용할 수 있는 방법을 설명합니다. 비디오는 또한 복잡한 신경망에 확률 모델을 맞추는 것에 대한 다가오는 강의를 언급합니다.

  • 00:00:00 비디오의 이 섹션에서 연사는 확률 분포를 데이터에 맞춰 밀도 추정을 위한 확률 모델을 사용하는 개념을 소개합니다. 특히 최대 우도 추정에 중점을 두고 정규 분포 또는 가우시안을 기반으로 하는 4가지 다른 모델에 적용합니다. 비디오는 또한 한 동전은 구부러지고 다른 동전은 곧게 펴지는 임의의 12개 동전 뒤집기 시퀀스에서 어떤 동전이 사용되었는지 결정하기 위해 최대 우도 원리를 사용하는 예를 제공합니다. 그런 다음 최대 우도를 사용하여 맞추는 강력하지만 어려운 모델인 가우시안 혼합 모델을 소개하고 가우시안 혼합 모델을 맞추는 방법으로 기대 최대화 알고리즘을 자세히 살펴봅니다.

  • 00:05:00 이 섹션에서는 기계 학습을 위한 모델 선택에 사용되는 최대 우도 원칙에 대해 설명합니다. 해당 데이터를 제공할 확률이 가장 높은 모델을 선택하기 위해 관찰된 데이터에 모델을 맞추는 작업이 포함됩니다. 가능성의 로그는 일반적으로 단순성을 위해 사용되며 함수가 가장 높은 지점에 도달하는 위치를 변경하지 않는 단조 함수입니다. 평균과 분산 또는 표준편차를 매개변수로 하는 정규분포도 도입되어 회귀 및 다변량 정규분포를 비롯한 다양한 모델에서 사용됩니다. 가우시안 혼합 모델은 다중 정규 분포의 조합으로도 논의됩니다.

  • 00:10:00 이 섹션에서 발표자는 다양한 유형의 분포와 정규 분포가 제공하는 명확한 척도를 갖는 것의 중요성에 대해 논의합니다. 화자는 또한 확률 함수와 확률 밀도 함수의 차이점을 다루며 개별 이벤트에는 확률 밀도가 있으며 확률은 해당 밀도를 통합하여 얻을 수 있음을 강조합니다. 그런 다음 발표자는 정규 분포 공식을 소개하고 그것이 기하급수적으로 감소하여 명확한 척도를 갖는 기본 요구 사항을 달성하는 방법을 보여줍니다. 공식은 감쇠를 훨씬 더 가속화하는 제곱항을 추가하여 더욱 개선되었습니다.

  • 00:15:00 비디오의 이 섹션에서 발표자는 크기 조정 및 기본 함수 주변 이동을 통해 정규 분포의 확률 밀도 함수를 만드는 방법을 설명합니다. 그는 변곡점을 사용하여 가장 필요한 확률 질량을 배치하는 방법과 척도의 크기를 제어하는 방법, 평균을 조정하기 위해 함수를 이동하는 방법을 보여줍니다. 마지막으로 그는 데이터에서 정규 분포를 생성하기 위한 매개변수의 최대 우도 추정에 대해 설명합니다.

  • 00:20:00 이 섹션에서 화자는 확률 공간에서 가장 높은 지점을 찾는 데 있어 최대 우도 추정과 그 적용에 대해 논의합니다. 그들은 1D 가우시안 분포의 매개변수에 대한 확률의 로그 합을 최대화하기 위한 목표를 제시합니다. 그런 다음 평균에 대한 도함수를 취하여 최대값에 대해 해결합니다. 그들은 정규 분포의 평균에 대한 최대 우도 추정기가 데이터의 평균일 뿐이며 이러한 모든 함수에 대한 표준 편차를 찾는 데 동일한 접근 방식을 적용할 수 있음을 발견했습니다. 화자는 또한 최적을 찾기 위한 분석 솔루션의 존재를 언급합니다.

  • 00:25:00 이 섹션에서는 비디오에서 최소 제곱 회귀의 정규성 가정에 대해 설명합니다. 모델은 라인에 약간의 노이즈를 추가하여 데이터가 생성된다고 가정하고 데이터의 확률 분포는 정규 분포로 생각할 수 있습니다. 선형 모델의 매개변수의 우도를 최대화하려면 X, W, B가 주어졌을 때 Y의 확률을 최대화해야 합니다. 이 방정식을 채우고 로그를 계산하면 정규화 부분이 사라지고 나머지 함수는 최소값과 유사합니다. 제곱 목적 함수. 원점의 평균과 거리가 증가함에 따라 확률 밀도가 기하급수적으로 감소하는 다변량 분포에 대해서도 설명합니다.

  • 00:30:00 이 섹션에서 발표자는 선형 변환을 사용하여 정규화된 벨 곡선의 대부분의 확률 질량을 포함하는 단위 원을 공간에서 데이터에 맞게 이동하는 방법에 대해 설명합니다. 선형 변환은 행렬과 벡터 T를 정의하며, 곡선 아래의 총 부피를 계산하고 나누기 위해 먼저 정규화되는 단위 원에 적용됩니다. 이 변환을 적용하면 원이 특정 방향으로 늘어나고 확률 밀도가 폭발합니다. 이를 보정하기 위해 행렬의 행렬식을 확대된 부피로 나누어 변환된 가우시안 아래 특정 지점의 확률 밀도를 구합니다.

  • 00:35:00 이 섹션에서 발표자는 주어진 평균과 시그마를 사용하여 비표준 단변량 정규 분포에서 샘플링하는 방법에 대해 설명합니다. 이렇게 하려면 표준 정규 분포에서 x를 샘플링하고 분산을 곱한 다음 평균을 더하여 원하는 분포에서 샘플을 얻을 수 있습니다. 마찬가지로, 주어진 평균과 시그마가 있는 다변량 정규 분포에서 샘플링하려면 시그마 분해, 표준 분포에서 샘플링 및 선형 변환 적용이 포함됩니다. 발표자는 또한 휴식 후 토론의 초점이 될 가우시안 혼합 모델의 개념을 소개합니다. 화자는 등급 분포의 예를 사용하여 샘플 내의 다양한 모집단의 개념을 설명합니다.

  • 00:40:00 이 섹션에서 발표자는 가우시안 혼합 모델과 이 모델이 모집단 내에서 서로 다른 클러스터를 식별하는 데 어떻게 도움이 되는지에 대해 설명합니다. 가중치와 스케일링이 다른 3개의 개별 정규 분포를 생성하면 결과 확률 밀도 함수에 3개의 피크 또는 모드가 있습니다. 이 모델을 데이터에 맞추려면 최대 우도 목표를 사용하여 최상의 가우시안 혼합 모델 매개변수를 결정합니다. 기울기는 경우에 따라 유용할 수 있지만 로그 내부의 합계로 인해 작업하기가 쉽지 않습니다. 대신 k-평균 클러스터링 알고리즘과 유사한 기대값 최대화 알고리즘을 사용하여 데이터의 최적 클러스터링을 찾습니다.

  • 00:45:00 이 섹션에서는 비디오에서 가우시안 혼합 모델의 사용에 대해 설명합니다. 이 모델은 기본적으로 임의의 값 세트를 샘플링하고 이를 사용하여 각각의 가중치가 있는 여러 구성 요소에서 값 X를 샘플링하는 숨겨진 변수 모델입니다. 그런데 문제는 X 값만 관찰되고 Z 값은 가려진다는 것입니다. 해결책은 EML(Expectation Maximization) 알고리즘을 사용하는 것입니다. 이 알고리즘은 구성 요소에 대한 무작위 추측, 각 포인트에 소프트 책임 할당, 분포를 데이터 하위 집합에 맞추고 주어진 설정 값에 대한 분포를 추론하는 프로세스를 반복합니다. X 값. 이 반복 프로세스를 통해 알고리즘은 모델 매개변수를 추정하고 데이터의 우도를 최대화할 수 있습니다.

  • 00:50:00 이 섹션에서는 비디오에서 일부 포인트가 다른 포인트보다 더 중요한 데이터 세트에 가우시안 혼합 모델을 맞추는 데 사용되는 기대 최대화(EM) 알고리즘에 대해 설명합니다. 알고리즘은 먼저 각 포인트에 소프트 책임을 할당하여 작동합니다. 즉, 각 포인트는 각 구성 요소의 일부 책임을 가집니다. 그런 다음 이러한 책임은 가우스 모델을 가중 데이터 세트에 맞추는 데 사용되며 여기서 평균 및 분산은 가중 평균 및 분산을 사용하여 계산됩니다. 이 프로세스는 적합성이 달성될 때까지 기대 및 최대화 단계를 반복합니다. 비디오는 이 프로세스의 시각화를 보여주며 모델이 적합한 것을 찾을 때까지 더 중요한 지점으로 이동하는 방법을 보여줍니다.

  • 00:55:00 이 섹션에서 연사는 기대값 최대화의 직관적 특성의 공식화와 그것이 로컬 최적값으로 수렴한다는 것을 증명하는 방법에 대해 논의합니다. 실제 우도의 근사치로 Q 함수를 사용하면 우도 함수를 KL 발산과 근사치가 얼마나 좋은지 측정하는 L 함수의 두 가지 용어로 분해할 수 있습니다. 이러한 항의 로그를 취함으로써 화자는 최적 매개변수가 주어진 우도 함수 집합의 로그에서 근사화된 Q 집합의 로그를 빼서 L 함수를 계산할 수 있음을 보여줍니다. 이 분해는 기대 최대화 접근법의 수렴을 이해하고 증명하는 데 유용합니다.

  • 01:00:00 이 섹션에서 발표자는 EM 알고리즘의 증명과 그것이 수렴하는 이유에 대해 논의합니다. 결합 분포와 조건부 분포를 재배열함으로써 세타가 주어진 x의 대수 기대치를 Q에 대한 상수로 쓸 수 있음을 보여줍니다. 그런 다음 화자는 KL 발산 측면에서 EM 알고리즘을 재정의하는 방법을 설명합니다. 데이터를 고정하면서 KL 발산을 0으로 만들기 위해 일부 데이터와 임의의 세타가 주어진 큐를 선택하여 L이 전체 공간을 덮고 최대 우도가 달성되도록 합니다.

  • 01:05:00 이 섹션에서 화자는 Q를 고정한 상태에서 L을 최대화하기 위해 세타를 선택하여 L을 최대화하는 M 단계를 설명합니다. 그들은 이 단계가 우도의 증가로 이어지는 방법과 E/M 반복이 우도를 지속적으로 증가시키는 이유를 설명합니다. 연사는 또한 최대화 목적으로 M-step을 작동하고 기대 최대화 알고리즘에 대한 최대 가능성 추정량을 도출하는 방법을 설명합니다. 클러스터링 및 탐색적 분석과 같은 이 기술의 응용과 각 클래스에 가우시안 혼합 모델을 피팅하여 분류에 사용할 수 있는 방법에 대해 논의합니다.

  • 01:10:00 이 섹션에서 발표자는 가우시안 혼합 모델과 모델이 다양한 형태를 취할 수 있는 방법에 대해 논의하여 정규 분포보다 훨씬 더 강력하게 만듭니다. 가우시안 혼합 모델을 데이터에 맞추려면 최대 우도 적합에 대한 분석적 폐쇄형 솔루션이 없기 때문에 기대 최대화 알고리즘을 사용해야 합니다. 그러나 모델이 피팅되면 기본 분류기를 사용하여 확률 밀도를 기반으로 새 포인트를 분류하는 등 다양한 방식으로 사용할 수 있습니다. 다음 강의에서는 신경망의 숨겨진 변수 모델에 대해 논의하고 확률 모델을 복잡한 신경망에 맞추는 방법에 대해 논의할 계획입니다.
 

강의 9 딥러닝 2: 생성 모델, GAN, VAE(Variational Autoencoders) (MLVU2019)



9 딥 러닝 2: 생성 모델, GAN, VAE(Variational Autoencoders)(MLVU2019)

이 동영상은 딥 러닝 프로젝트를 위한 분할 데이터, 전이 학습, 생성 모델에 대한 집중 등 딥 러닝과 관련된 다양한 주제를 다룹니다. 연사는 신경망을 사용하여 임의의 결과와 확률 분포를 생성하는 개념을 탐구하고 생성적 적대 신경망 및 자동 인코더와 같은 생성기를 훈련시키는 다양한 방법을 설명합니다. 또한 데이터 조작 및 차원 감소와 같은 다양한 기계 학습 응용 프로그램에서 GAN, 조건부 GAN, 스테가노그래피 및 자동 인코더의 중요성을 탐구합니다. 발표자는 레이블이 지정된 데이터가 많지 않은 높은 수준의 데이터 조작을 위해 잠재 공간에서 데이터를 조작하는 것과 변형 자동 인코더와 같은 대체 접근 방식의 필요성에 대해 논의합니다.

비디오의 두 번째 부분에서는 다른 모델에서 흔히 볼 수 있는 모드 붕괴 문제를 해결하기 위한 생성 모델 유형인 VAE(Variational Autoencoder)를 살펴봅니다. 입력을 잠재 공간으로 인코딩하고 다시 입력 공간으로 디코딩하여 인코딩과 디코딩을 모두 최적화하는 데 두 개의 신경망이 사용됩니다. 발표자는 손실 함수를 KL 발산 항과 네트워크를 최적화하는 데 사용할 수 있는 예상 로그 우도 항으로 분해합니다. VAE에서 기대값을 최대화하는 문제를 설명하고 이 문제를 극복하는 방법으로 재매개변수화 트릭을 논의합니다. 연사는 VAE를 GAN 및 PCA와 같은 다른 기술과 비교하여 VAE가 더 강력하지만 훈련하기도 더 어렵다고 결론지었습니다.

  • 00:00:00 이 섹션에서 연사는 청중에게 데이터를 보기 전에 데이터를 훈련 세트와 테스트 세트로 분할하도록 상기시킵니다. 한번 본 데이터는 보이지 않을 수 없기 때문입니다. 딥 러닝 프로젝트를 진행하는 사람들에게는 전이 학습을 사용하여 Google과 같은 회사의 사전 훈련된 네트워크를 사용하고 그 위에 자체 레이어를 추가하여 값비싼 훈련 없이 강력한 모델을 만들 것을 제안합니다. 이것은 큰 GPU가 있는 큰 컴퓨터에 액세스할 수 없는 사람들에게 좋은 옵션입니다. 또한 발표자는 모든 중요한 측면이 쉽게 통과할 수 있도록 프로젝트의 루브릭을 확인하도록 조언합니다.

  • 00:05:00 이 섹션에서는 이미지나 약간의 언어와 같은 새로운 것을 샘플링할 수 있는 확률 분포를 생성하도록 신경망이 훈련되는 생성 모델링을 위한 딥 러닝에 대해 비디오에서 설명합니다. 첫 번째 단계는 이러한 새로운 것을 생성할 수 있는 생성기라는 신경망을 구축하는 것입니다. 실제로 존재하지 않는 사람의 이미지를 생성하도록 훈련된 신경망의 예가 표시됩니다. 그런 다음 비디오는 좀 더 원칙적인 접근 방식으로 변형 자동 인코더에 중점을 두고 생성 적대 신경망과 자동 인코더인 생성기를 훈련시키는 두 가지 방법을 설명합니다.

  • 00:10:00 이 섹션에서는 화자가 신경망을 사용하여 무작위 결과 및 확률 분포를 생성하는 방법을 설명합니다. 이를 수행하는 두 가지 방법이 있습니다. 네트워크에 일부 입력을 제공하고 출력을 다변량 정규 분포의 평균 및 시그마로 해석하거나 표준 다변량 정규 분포에서 무작위 입력을 샘플링하고 신경망을 통해 입력하여 다음을 관찰합니다. 산출. 후자의 접근 방식은 다변량 정규 분포를 복잡한 모양의 비정규 분포로 변환한 2계층 신경망을 사용한 화자의 실험에서 볼 수 있듯이 매우 복잡하고 흥미로운 확률 분포를 생성할 수 있습니다. 이 접근 방식은 사람의 얼굴과 같은 매우 복잡한 분포를 모델링하는 데 사용할 수 있습니다.

  • 00:15:00 이 섹션에서 강사는 생성 모델에 대한 교육 단계와 모드 붕괴와 같은 문제에 대해 설명합니다. 신경망이 나타내는 확률 분포를 데이터 세트에 맞추는 순진한 접근 방식 중 하나는 생성된 이미지와 원본 이미지 사이의 거리를 손실로 사용하는 역전파를 이용하는 것입니다. 그러나 이 접근 방식은 종종 실패하고 데이터 세트의 모든 모드가 하나의 모드로 축소됩니다. 그런 다음 강사는 잘 작동하는 생성 모델의 두 가지 예인 GAN(Generative Adversarial Networks)과 VAE(Variational Autoencoders)를 제시합니다. 강사는 GAN에 영감을 준 CNN(Convolutional Neural Networks)의 역사와 생성된 이미지를 개선하기 위해 서로 경쟁하는 두 개의 네트워크를 통해 어떻게 작동하는지 설명합니다. 반면 VAE에는 원본 이미지를 확률 분포로 압축하는 인코더 네트워크와 해당 분포에서 새 이미지를 생성하는 디코더 네트워크가 있습니다.

  • 00:20:00 이 섹션에서 발표자는 특정 출력 뉴런과 일치하는 이미지를 생성하기 위해 입력을 최적화하는 데 사용되는 기술에 대해 논의합니다. 이 기술은 네트워크가 속일 수 있는 가짜 이미지인 적대적 예의 출현으로 이어집니다. 완전히 다른 것. 이 기술은 처음에는 신경망 커뮤니티에 타격을 입혔지만 적대적인 예가 생성되고 부정적인 예로서 데이터 세트에 추가되는 임시 학습 알고리즘의 개발로 이어졌습니다. 그러나 이 접근 방식은 완전히 효율적이지 않았기 때문에 Vanilla GAN이라는 엔드 투 엔드 솔루션이 개발되었습니다. 이 접근 방식은 화자가 프레임워크 위에 구축하는 세 가지 다른 방법을 설명하여 인상적인 사례를 만드는 데 사용하는 기본 접근 방식입니다.

  • 00:25:00 이 섹션에서는 발표자가 GAN(Generative Adversarial Networks)의 작동 방식을 설명합니다. GAN은 두 개의 신경망, 출력을 생성하는 생성기와 출력 중 어느 것이 가짜인지 판단하는 이미지 분류기인 판별기로 구성됩니다. gan 훈련의 목표는 생성기 네트워크가 점점 더 현실적인 결과를 생성할 수 있도록 하는 것입니다. 발표자가 설명했듯이 생성자와 판별자는 두 사람이 하는 제로섬 게임처럼 작동하며 각 네트워크는 서로를 능가하려고 합니다. 제너레이터는 discriminator를 속이는 가짜 출력을 생성하려고 시도할 책임이 있으며, discriminator의 역할은 이러한 가짜 출력을 잡는 것입니다. 발표자들은 교육 후 GAN의 출력이 목표 입력과 무작위성의 조합이 될 것이라고 설명합니다.

  • 00:30:00 이 섹션에서 발표자는 데이터 생성 기능과 출력 제어 기능을 결합하는 것을 목표로 하는 조건부 GAN에 대해 설명합니다. 제어 없이 출력을 생성하는 일반 GAN과 달리 조건부 GAN은 출력을 제어하는 입력을 받아 여러 레이블이 있는 데이터 세트에 유용합니다. 발표자는 또한 2개의 생성기를 사용하여 2개의 페어링되지 않은 이미지 백을 매핑하고 이미지가 앞뒤로 매핑되는 경우 원본 이미지를 얻을 수 있도록 주기 일관성 손실 항을 추가하는 주기 GAN에 대해 설명합니다. 이렇게 하면 생성 비용이 많이 드는 추가 이미지를 생성할 수 있습니다.

  • 00:35:00 이 섹션에서 발표자는 눈에 잘 띄는 곳에 코드를 숨기는 스테가노그래피의 개념과 이것이 다른 이미지 안에 한 이미지를 숨기는 GAN 및 VAE와 같은 생성 모델과 어떻게 관련되는지 설명합니다. 이 모델의 목표는 판별자가 한 이미지가 다른 이미지 안에 숨겨져 있다고 말할 수 없도록 만드는 것입니다. 연사는 이러한 모델이 사진을 모네 그림으로 바꾸는 것과 같이 이미지를 다양한 스타일로 변환하는 방법의 예를 보여줍니다. 연사는 또한 사람의 초현실적인 이미지를 생성하는 GAN 스타일과 낮은 수준에서 높은 수준의 의미론적 속성으로 이미지를 생성하는 디콘볼루션 신경망을 통해 잠재 벡터를 공급하여 작동하는 방식에 대해 이야기합니다.

  • 00:40:00 이 섹션에서 발표자는 각 계층에서 네트워크에 무작위 노이즈를 공급하여 생성된 이미지의 세부 사항을 제어할 수 있는 모델에 대해 설명합니다. 이 방법은 잠재 벡터에 대한 작업 부하를 줄이고 고유한 이미지 생성도 허용합니다. 발표자는 생성 과정 중 특정 지점에서 빛과 벡터를 변경하여 각 수준에서 특정 특성을 가진 이미지를 선택하여 이 기술을 시연합니다. 이 모델은 단순히 초현실적인 얼굴을 생성하는 것 이상으로 확장된 제어 수준을 제공합니다.

  • 00:45:00 이 섹션에서 발표자는 생성기가 생성되면 수행할 수 있는 작업에 대해 설명합니다. 기술 중 하나는 보간(interpolation)이라고 불리는 것으로, 다변량 분포 공간에서 두 점을 가져와 그 사이에 선을 긋고, 균일한 간격의 점을 골라 생성기를 통해 공급하여 하나의 출력에서 다음. 이것은 조명 공간의 임의의 점에 모서리를 매핑하여 보간 그리드를 생성하기 위해 균일한 간격의 점 그리드에서 수행할 수 있습니다. 이러한 잠재 공간은 일반적으로 구형 토폴로지에 배치됩니다. 즉, 보간을 수행하려면 구형 보간으로 알려진 이 구형 영역을 통해 이동해야 합니다. 마지막으로, 데이터 조작 또는 차원 축소를 수행하려면 잠재 공간에 매핑해야 하며, 이를 위해서는 출력에서 잠재 공간으로 매핑하기 위해 오토인코더를 사용해야 합니다.

  • 00:50:00 이 섹션에서 발표자는 데이터 조작 및 차원 감소와 같은 다양한 기계 학습 응용 프로그램에서 자동 인코더와 그 중요성에 대해 논의합니다. 자동 인코더는 입력에서 잠재 공간으로 그리고 다시 출력으로 데이터를 매핑하는 데 도움이 되는 신경망입니다. 네트워크의 병목 현상 아키텍처는 더 압축된 형태로 입력의 기능을 학습하고 재현할 수 있도록 합니다. 일단 훈련되면 네트워크는 2차원 공간에서 잠재 코드의 클러스터링을 생성할 수 있으며, 이는 웃는 얼굴과 같은 높은 수준의 의미론적 기능을 공간의 클러스터로 배치합니다.

  • 00:55:00 이 섹션에서 발표자는 많은 레이블이 지정된 데이터가 필요 없이 데이터를 높은 수준으로 조작하기 위해 잠재 공간에서 데이터를 조작하는 방법에 대해 설명합니다. 그들은 잠재 공간에서 조작된 다음 디코딩된 인코딩된 그림을 사용하여 누군가를 웃게 만드는 간단한 알고리즘을 보여줍니다. 발표자는 또한 자동 인코더의 한계와 VAE(변형 자동 인코더)와 같은 대체 접근 방식의 필요성에 대해 논의합니다. VAE(변형 자동 인코더)는 디코더가 원래 입력 근처의 지점을 디코딩하지만 공간에서 적절한 보간을 보장하기 위해 완전히 동일하지는 않습니다. .

  • 01:00:00 비디오의 이 섹션에서 연사는 모델이 데이터 사이의 지점에 초점을 맞추고 데이터가 원점에 집중되도록 하는 일종의 생성 모델인 VAE(변형 자동 인코더)에 대해 설명합니다. 모든 방향에서 상관 관계가 없는 분산이 있습니다. 최대 우도 원리는 모델을 데이터에 맞추는 데 사용되며 신경망은 실제 사후를 근사하는 데 사용됩니다. 모드 축소는 X에서 Zed로의 매핑이 없기 때문에 여전히 문제이지만 VAE는 이전 모델보다 더 나은 솔루션을 제공합니다.

  • 01:05:00 이 섹션에서는 생성 모델에 대해 알아보고 서로 다른 입력에 대해 유사한 출력이 생성되는 모드 붕괴로 인해 어떻게 어려움을 겪을 수 있는지 알아봅니다. 이 문제를 해결하기 위해 두 개의 신경망을 사용하여 입력을 잠재 공간의 분포로 인코딩하고 잠재 공간 분포를 입력 공간의 분포로 디코딩하는 VAE(변형 자동 인코더)를 사용할 수 있습니다. 손실 함수로 사용할 수 있는 실제 확률의 하한을 얻기 위해 입력의 로그 확률 분해를 사용할 수 있습니다. 이를 통해 인코딩 및 디코딩 모두에 대해 신경망을 최적화할 수 있으므로 모드 붕괴 문제를 완화하는 데 도움이 됩니다.

  • 01:10:00 이 섹션에서 발표자는 L 함수를 딥 러닝 시스템에서 사용할 수 있는 것으로 다시 작성하는 방법을 설명합니다. 목표는 우도의 하한을 최대화하는 것이며 음의 L을 최소화함으로써 우도를 최대한 높일 수 있습니다. 화자는 조건부 확률의 정의를 사용하여 분수의 상단 부분을 분해하고 기대치의 합으로 단순화합니다. 이는 KL 발산 및 예상 로그 우도가 됩니다. 이러한 용어는 딥러닝 시스템에서 계산되어 손실 함수로 사용될 수 있습니다. KL 항은 설정된 벡터를 원점으로 끌어당겨 원점 주변의 하이퍼스피어 쪽으로 두껍게 만드는 반면, 다른 항은 예상을 해야 하므로 구현하기가 조금 더 어렵습니다.

  • 01:15:00 이 섹션에서 연사는 Variational Autoencoder(VAE)의 맥락에서 기대치를 최대화하는 문제에 대해 논의합니다. 발표자는 샘플을 채취하고 각 샘플에 대한 확률 밀도의 로그를 계산한 다음 평균을 취함으로써 예상을 근사화한다고 설명합니다. 그들은 일을 단순하게 유지하기 위해 L을 1로 설정했습니다. 그러나 그들은 그들의 방법이 미분할 수 없는 샘플링 단계에서 고착된다는 점에 주목합니다. 이 문제를 해결하기 위해 신경망의 일부로 샘플링 단계를 구현할 수 있는 재매개변수화 트릭을 통합합니다. 이것은 구현하기 더 간단한 생성기를 교육하는 원칙적 접근 방식인 Variational Encoder의 개발로 이어집니다.

  • 01:20:00 이 섹션에서 발표자는 GAN(Generative Adversarial Networks)이라는 생성 모델과 VAE(Variational Autoencoders)의 차이점을 설명합니다. GAN이 잠재 공간에서 데이터 공간으로의 매핑을 제공하는 반면 VAE는 데이터 공간에서 잠재 공간으로 그리고 다시 데이터 공간으로 돌아갑니다. VAE는 언어 및 이산 데이터를 포함하여 데이터 요소 간 보간을 제공하며 이산 변수를 생성할 때 GAN보다 더 잘 작동합니다. 연사는 VAE가 스마일 벡터, 기존 종이 및 빼기 선글라스 벡터를 사용하여 악인 실험을 수행하는 방법에 대한 예를 제공합니다. 발표자는 VAE가 첫 번째 원칙에서 직접적인 접근 방식을 제공하지만 GAN이 이미지에 더 적합하다고 결론을 내립니다.

  • 01:25:00 이 섹션에서 발표자는 VAE(Variational Autoencoder)와 PCA(Principle Component Analysis)를 비교하여 두 기술 모두 차원 축소 및 데이터를 표준화된 분포로 매핑하는 데 사용되지만 VAE가 더 강력하고 다음을 수행할 수 있다고 설명합니다. 더 많은 것들. 그러나 VAE 교육은 경사 하강이 필요하고 PCA는 분석 솔루션을 찾을 수 있으므로 훨씬 더 어렵습니다. 또한 PCA는 얼굴에 대한 웃는 차원과 같이 데이터를 기반으로 의미 있는 차원을 제공하는 경우가 많지만 VAE에서 생성된 차원은 일반적으로 특정 의미 기능을 대상으로 지정하지 않는 한 의미가 없습니다.
 

강의 10 트리 모델 및 앙상블: 결정 트리, AdaBoost, Gradient Boosting(MLVU2019)



10가지 트리 모델 및 앙상블: 결정 트리, AdaBoost, Gradient Boosting(MLVU2019)

비디오의 첫 번째 부분에서는 인스턴스 공간을 분할하고 각 세그먼트에 대한 클래스를 선택하여 작동하는 분류 및 회귀에 사용되는 인기 있는 기계 학습 모델인 결정 트리를 소개합니다. 이 비디오는 정보 획득을 사용하여 결정 트리를 훈련하는 방법과 가지치기가 과적합을 완화하는 데 어떻게 도움이 될 수 있는지에 대해서도 설명합니다. 연사는 모델 간 공정성을 보장하기 위해 데이터를 교육, 검증 및 테스트 세트로 분할하는 것의 중요성을 강조합니다. 또한 이 동영상에서는 높은 분산 및 불안정성과 같은 문제를 해결하기 위해 여러 의사 결정 트리 또는 기타 모델을 훈련하고 결합하는 앙상블 학습에 대해 설명합니다. 부스팅은 모델 앙상블 기법으로도 도입되어 순차적으로 분류기를 훈련하고 앙상블을 개선하기 위해 데이터에 가중치를 다시 부여합니다. 마지막으로 앙상블을 개선하기 위해 손실 함수를 최소화하는 분류기를 선택하는 Adaboost 알고리즘에 대해 설명합니다.

비디오의 두 번째 부분에서는 AdaBoost 및 그래디언트 부스팅을 비롯한 다양한 트리 모델과 앙상블을 다룹니다. AdaBoost는 분류기의 성능을 기반으로 데이터 인스턴스에 가중치를 부여하는 분류 모델에 널리 사용되는 부스팅 방법입니다. 그래디언트 부스팅에는 상수 함수로 모델을 초기화하고, 잔차를 계산하고, 레이블이 지정된 잔차에 새 모델을 피팅하고, 앙상블에 추가하는 작업이 포함됩니다. 발표자는 그래디언트 부스팅과 AdaBoost의 차이점을 설명하고 앙상블이 결과를 혼란스럽게 할 수 있으므로 연구에서 많이 사용되지 않는다고 말합니다. 또한 배깅은 분산을 줄이고 부스팅은 편향을 줄입니다.

  • 00:00:00 비디오의 이 섹션에서 발표자는 Kaggle과 같은 프로덕션 및 경쟁에서 널리 사용되는 세 가지 기계 학습 모델과 모달 앙상블을 소개합니다. 이 접근법은 의사 결정 트리 학습의 기본 아이디어인 분류 모델 또는 회귀 모델과 많은 모델을 훈련하고 결합하여 모델을 더 강력하게 만드는 앙상블 방법을 결합합니다. 발표자는 또한 의사 결정 트리가 숫자 및 범주 기능 모두에서 작동한다고 설명합니다. 이들은 주로 범주형 기능에 사용됩니다. 이 섹션은 결정 트리 모델을 시연하는 데 사용될 영화에 대한 데이터 세트를 소개하는 것으로 끝납니다.

  • 00:05:00 이 섹션에서는 비디오에서 의사 결정 트리가 작동하는 방식과 데이터 세트를 사용하여 의사 결정 트리를 학습하는 방법에 대해 설명합니다. 의사 결정 트리 학습 프로세스에는 분할할 좋은 기능 찾기, 트리를 단계별로 확장 및 데이터 하위 집합 생성이 포함됩니다. 분할은 각 하위 집합 내에서 클래스 레이블의 최소 균일 분포를 생성하여 결정됩니다. 영화 등급 및 장르에 대한 데이터 세트에 대한 예가 제공되며 등급으로 분할하면 좋은 클래스 분포가 생성되지 않지만 장르로 분할하면 생성됩니다.

  • 00:10:00 이 섹션에서 비디오는 인스턴스 공간을 분할하고 각 세그먼트에 대해 특정 클래스를 선택하여 결정 트리가 작동하는 방식을 설명합니다. 트리는 각 리프에 대해 새 분할을 선택하여 확장되지만 루트에서 리프까지의 경로에서 동일한 범주 기능에서 두 번 분할하는 것은 의미가 없습니다. 정지 조건은 모든 입력 또는 모든 출력이 동일한 경우이며 비균일성은 세그먼트 간의 클래스 분포에 따라 결정됩니다. 각 클래스의 비율을 고려해야 하므로 3개 이상의 클래스에서는 어려울 수 있습니다.

  • 00:15:00 이 섹션에서 발표자는 엔트로피를 분포의 균일성 측정으로 사용하는 방법과 결정 트리 분류에서 기능의 정보 이득을 계산하는 방법을 설명합니다. 엔트로피는 분포가 얼마나 균일한지를 나타내는 척도이며 균일한 분포가 더 높은 엔트로피를 가집니다. 발표자는 이를 두 분포로 시연하고 엔트로피 공식을 사용하여 균일 분포가 2비트의 엔트로피를 갖는 반면 비균일 분포는 더 짧은 코드로 정보를 전송하는 효율성이 높아져 엔트로피가 훨씬 낮다는 것을 보여줍니다. 조건부 엔트로피, 즉 어떤 것을 조건으로 한 엔트로피일 뿐이라는 것도 설명하고, 특징을 본 후의 엔트로피를 뺀 특징을 보기 전의 일반 엔트로피를 취하여 특징의 정보 이득을 계산합니다.

  • 00:20:00 이 섹션에서는 정보 획득이 가장 높은 기능을 사용하여 트리를 분할하는 과정을 자세히 설명합니다. 알고리즘은 레이블이 지정되지 않은 리프에서 시작하여 모든 리프에 레이블이 지정될 때까지 반복됩니다. 세그먼트가 있는 레이블이 지정되지 않은 각 리프에 대해 알고리즘은 기능이 부족하거나 동일한 클래스를 가진 모든 인스턴스가 부족할 수 있는 중지 조건을 확인합니다. 중지 조건이 충족되지 않으면 정보 이득이 가장 높은 기능에서 리프가 분할됩니다. 숫자 특징에 대한 임계값은 정보 이득을 최대화하기 위해 선택되며, 숫자 특징이 있는 의사 결정 트리 분류기는 동일한 특징에서 다른 임계값으로 여러 번 분할될 가능성으로 인해 더 복잡한 결정 경계를 가질 수 있습니다.

  • 00:25:00 이 섹션에서 발표자는 크고 복잡한 결정 트리를 사용할 때 과적합 문제에 대해 논의합니다. 트리의 최대 크기로 학습 정확도가 어떻게 증가할 수 있는지 설명하지만 테스트 또는 검증 데이터의 정확도는 크게 감소할 수 있습니다. 이 문제를 해결하기 위해 연사는 가지치기의 개념과 과적합을 완화하는 데 도움이 되는 방법을 소개합니다. 또한 모델 간 공정성을 보장하기 위해 하이퍼 매개변수 선택 및 모델 검색을 위해 데이터를 교육, 검증 및 테스트 세트로 분할하는 것의 중요성을 강조합니다. 마지막으로 발표자는 SK Learn과 같은 도구가 가지치기를 수행하기 위해 교육 프로세스 중에 일부 교육 데이터를 자동으로 보류한다고 말합니다.

  • 00:30:00 이 섹션에서 발표자는 대상 레이블이 클래스가 아니라 숫자 값일 때 사용되는 회귀 트리에 대해 이야기합니다. 기본 원칙은 의사 결정 트리와 동일하지만 주목해야 할 몇 가지 차이점이 있습니다. 첫째, 회귀 트리에서 리프는 클래스 대신 숫자로 레이블이 지정됩니다. 평균 또는 중앙값은 종종 세그먼트의 인스턴스에 레이블을 지정하는 데 사용됩니다. 둘째, 엔트로피 대신 분산을 사용하여 각 단계에서 분할할 기능을 결정하여 얻은 정보를 최대화합니다. 발표자는 또한 모델 공간에 대한 일반화 계층 구조에 대해 논의합니다. 여기서 가장 일반화하는 모델은 상수 함수이며 더 많은 분할을 추가하면 모델의 복잡성이 증가합니다.

  • 00:35:00 이 섹션에서 발표자는 의사 결정 트리 및 회귀 트리를 모델로 사용하고 높은 분산 및 불안정성 문제와 같은 제한 사항에 대해 설명합니다. 이러한 문제에 대한 해결책은 여러 의사 결정 트리를 훈련하고 이를 앙상블로 결합하는 것으로 널리 사용되는 기술입니다. 앙상블 학습의 목표는 편향과 분산 트레이드오프를 해결하는 것입니다. 여기서 편향은 구조적 문제이고 분산은 모델 오류의 확산입니다. 앙상블 학습은 이러한 문제를 해결하는 데 도움이 되며 의사 결정 트리를 다른 모델과 결합하는 것이 가능합니다. 루브릭으로 학생 프로젝트를 채점하는 비유는 높은 편향과 낮은 분산을 설명하는 데 사용됩니다.

  • 00:40:00 이 섹션에서 연사는 머신 러닝의 편향 및 분산 문제와 부트스트래핑이 이 문제를 해결하는 데 어떻게 도움이 되는지에 대해 논의합니다. 사용 가능한 데이터 세트가 제한되어 있기 때문에 대상에서 관찰된 거리가 높은 편향 때문인지 높은 분산 때문인지 판단하기 어려울 수 있습니다. 부트스트래핑은 원래 데이터 세트를 대체하여 리샘플링하여 새 샘플 데이터 세트를 생성함으로써 다른 데이터 세트에서 샘플링하는 프로세스를 시뮬레이션하여 이 문제를 해결합니다. 경험적 분포의 누적 밀도 함수를 분석하면 원래 데이터 세트에서 리샘플링하는 것이 원래 데이터 분포에서 샘플링을 근사화하여 학습할 다른 데이터 세트를 생성하여 높은 분산을 감지할 수 있다는 것이 분명해집니다.

  • 00:45:00 이 섹션에서는 데이터 세트를 리샘플링하고 각 리샘플 데이터 세트에서 여러 모델을 교육하는 것과 관련된 부트스트랩 집계 또는 배깅에 대해 설명합니다. 그런 다음 새 데이터를 분류하기 위해 다수결로 모델을 결합하고 이 방법은 변동성을 줄이지만 편향을 줄이지는 않습니다. 또한 이 비디오에서는 부스팅에 대해 설명합니다. 부스팅은 약한 모델군을 함께 부스팅하여 더 낮은 편향을 달성하는 데 도움이 됩니다. 부스팅에는 학습 프로세스의 특정 지점에서 각 기능이 얼마나 중요한지를 나타내는 가중치라는 작은 열을 데이터 세트에 추가하는 작업이 포함됩니다. 부스팅의 일반적인 개념은 선형 분류기, 상수 모델 또는 다수 클래스를 출력하는 분류기 M0으로 시작하는 것입니다.

  • 00:50:00 이 섹션에서는 모델 앙상블 기법으로 부스팅의 개념을 소개합니다. 부스팅은 분류자를 순차적으로 교육하고 이전 분류자가 잘못한 인스턴스의 가중치를 늘리고 올바른 인스턴스의 가중치를 줄여 데이터에 다시 가중치를 부여하는 것입니다. 분류기는 앙상블을 개선하는 데 얼마나 중요한지에 따라 가중치가 부여되며 최종 앙상블은 각각의 가중치로 훈련된 모든 모델의 합입니다. AdaBoost는 부스팅에 대한 보다 원칙적인 접근 방식이며 최소화하기 위한 오류 함수 정의 및 가중 교육 데이터 사용을 포함합니다. 오차 함수는 앙상블의 각 모델에 부여된 가중치를 결정하는 데 사용됩니다.

  • 00:55:00 비디오의 이 섹션에서 화자는 Adaboost에서 사용되는 손실 함수와 앙상블에 추가할 다음 분류기를 선택하기 위해 손실 함수를 최소화하는 방법을 설명합니다. 그는 데이터 세트의 각 인스턴스에 대해 대상 레이블과 예측 레이블 간의 차이의 지수를 취하여 오류를 계산하는 방법을 설명하고 전체 데이터 세트에서 이 오류를 합산하여 현재 앙상블의 오류를 제공하는 방법을 보여줍니다. . 그런 다음 발표자는 잘못 분류된 인스턴스의 가중치 합계를 최소화하기 위해 다음 분류기를 선택하여 최소화할 수 있는 새 함수로 이 오류를 더욱 단순화하는 방법을 설명합니다. 분류기. 전반적으로 Adaboost 알고리즘은 이 손실 함수를 최소화하는 분류자를 반복적으로 선택하여 잘못 분류된 인스턴스의 가중치를 효과적으로 증가시키고 향후 반복에서 잘못 분류되는 빈도를 줄이는 방식으로 작동합니다.

  • 01:00:00 이 섹션에서는 발표자가 모델 분류에 널리 사용되는 부스팅 방법인 AdaBoost 알고리즘에 대해 설명합니다. 앙상블을 만들기 위해 알고리즘은 특정 분류기로 시작하고 해당 인스턴스에서 분류기가 수행한 방식에 따라 데이터의 각 인스턴스에 대해 가중치가 계산됩니다. 새로운 분류자는 잘못된 분류의 가중치 합계를 최소화하도록 훈련되며, 이 새로운 분류자에는 가중치가 부여됩니다. 이 가중치는 오류의 지수를 취한 다음 전체 오류를 최소화하는 a 값을 찾아 계산됩니다. 이 프로세스는 설정된 단계 수 동안 반복되며 앙상블의 최종 모델이 결과입니다. 발표자는 또한 부스팅과 배깅의 차이점을 설명하고 회귀 모델용으로 설계된 부스팅의 변형인 그래디언트 부스팅을 소개합니다.

  • 01:05:00 이 섹션에서 화자는 상수 함수로 모델을 초기화하고 지금까지 앙상블의 잔차를 계산하는 것과 관련된 그래디언트 부스팅의 기본 아이디어에 대해 논의합니다. 그런 다음 새 모델이 원래 레이블 대신 잔차로 레이블이 지정된 데이터 세트에 적합하며 값 감마로 가중된 앙상블에 추가됩니다. 모델은 M3 = M2 + 다른 모델로 재귀적으로 작성하여 합계를 천천히 확장할 수 있습니다. 모델 출력과 목표 출력 간의 차이 또는 잔여 기울기인 제곱 오차 합 손실 함수에 대한 슈퍼 과적합 모델의 기울기를 계산하기 때문에 그래디언트 부스팅이라고 합니다.

  • 01:10:00 이 섹션에서 발표자는 모델이 예측 공간의 기울기를 따르도록 지시하여 기울기 부스팅이 작동하는 방식을 설명합니다. 그래디언트 부스팅을 사용하면 손실 함수를 L2 손실 대신 L1 손실과 같은 다른 손실 함수로 대체할 수 있습니다. 모델 출력에 대한 손실 값의 도함수를 취하고 체인 규칙을 적용하면 잔차 자체 대신 잔차의 사인을 계산하고 앙상블의 다음 분류기를 훈련하여 잔차의 사인을 예측할 수 있습니다. 이 방법을 사용하면 그래디언트 부스팅에서 다양한 손실 함수를 최적화할 수 있습니다.

  • 01:15:00 이 섹션에서는 그래디언트 부스팅과 ADA 부스트의 차이점에 대해 설명합니다. 그래디언트 부스팅에서 각 모델은 이전 모델의 유사 잔차에 적합하지만 ADA 부스트에서는 각각의 새 모델이 이전 모델의 성능을 기반으로 재가중된 데이터 세트에 적합합니다. 그래디언트 부스팅은 손실 함수를 최적화하지 않고 미적분에서 영감을 받은 학습 방법을 통해 작동하지 않는 모델에 더 잘 작동합니다. 반면 스태킹은 여러 모델의 판단을 하나의 출력으로 결합하는 간단한 기술입니다. 이 기술은 소수의 모델을 훈련하고 더 나은 모델로 결합하려는 경우 성능을 추가로 향상시키는 데 사용됩니다.

  • 01:20:00 이 섹션에서 발표자는 앙상블이 개별 모델보다 우위를 점하지만 결과를 혼동할 수 있는 부스팅 없이 모델을 비교하기 위해 모델을 따로 테스트해야 하므로 연구에서 많이 사용되지 않는다고 설명합니다. 게다가 앙상블은 거대한 신경망과 함께 사용할 때 비용이 많이 들 수 있으므로 대부분 결정 스탬프 또는 작은 결정 트리와 같은 작은 모델과 함께 사용됩니다. 연사는 또한 배깅은 변형을 줄이고 부스팅은 편향을 줄인다고 반복해서 말합니다.
 

강의 11 순차 데이터: Markov 모델, Word Embedding 및 LSTM



11 순차 데이터: Markov 모델, Word Embedding 및 LSTM

이 비디오에서 연사는 시간이나 순서대로 정렬된 숫자 또는 기호 데이터와 같이 머신 러닝에서 접하는 다양한 유형의 순차 데이터에 대해 설명합니다. 이러한 문제를 해결하기 위한 모델로 Markov 모델, 단어 임베딩 및 LSTM을 소개합니다. 비디오는 테스트 중인 특정 항목 이전에 발생한 데이터에 대한 검증 및 교육의 개념을 포함하여 순차적 데이터로 교육 및 예측 프로세스를 간략하게 설명합니다. 또한 연사는 다양한 길이와 시간 모델링의 시퀀스를 처리하는 방법과 시간을 통한 역전파를 사용하여 순환 신경망을 훈련하는 프로세스를 포함하여 신경망으로 시퀀스를 모델링하는 방법을 설명합니다. 마지막으로 비디오는 순환 신경망이 빠르게 잊어버릴 때 Markov 모델로 개선할 수 있는 라벨 분류에 대한 시퀀스의 측면을 다룹니다.

이 비디오는 Markov 모델과 그 한계, LSTM(Long Short-Term Memory) 네트워크와 그 장점, 텍스트 및 이미지 생성을 위한 LSTM 사용, 교사 강제 기법, 이미지 캡션 등 순차 데이터 처리와 관련된 다양한 주제를 다룹니다. 발표자는 LSTM 구조와 여기에 포함된 다양한 게이트에 대한 자세한 설명과 셰익스피어 텍스트 생성 및 이미지 캡션과 같은 작업을 위해 이러한 네트워크에서 훈련 및 샘플링하는 방법을 제공합니다. 간단한 모델에서 LSTM과 같은 보다 강력한 모델에 이르기까지 시퀀스 처리에 사용할 수 있는 다양한 방법과 함께 단어 수준 LSTM을 개선하기 위해 임베딩 레이어를 사용하는 것의 중요성에 대해서도 설명합니다.

  • 00:00:00 이 섹션에서 연사는 투표율이 낮았기 때문에 컴퓨터 과학 학생들을 위한 전국 학생 설문조사 참여의 중요성에 대해 논의합니다. 다음으로 연사는 모의고사로 대체되기 때문에 다음 주에는 숙제가 없을 것이라고 발표합니다. 연사는 시청자에게 과정의 어려운 부분이 끝났고 나머지 강의는 덜 복잡할 것이라고 확신합니다. 이번 강의의 주제는 순차적 데이터이며, 발표자는 이러한 문제를 해결하기 위한 모델로 Markov 모델, Word Embedding, LSTM을 소개합니다.

  • 00:05:00 이 섹션에서 화자는 시간이나 순서대로 정렬된 숫자 또는 기호 데이터와 같이 기계 학습에서 접할 수 있는 다양한 유형의 순차 데이터에 대해 설명합니다. 데이터는 문제의 특성에 따라 1차원 또는 2차원과 같은 다양한 차원을 가질 수 있습니다. 예를 들어 언어 데이터는 각 단어가 불연속 값인 1차원으로 표시되거나 포스트 텍스트 품사 태그가 있는 2차원으로 표시될 수 있습니다. 화자는 또한 데이터의 유형과 차원에 따라 분류 또는 예측과 같은 가능한 기계 학습 작업을 언급합니다.

  • 00:10:00 이 섹션에서 발표자는 기계 학습 모델을 사용하여 데이터를 이전 값과 대상에 대한 기능이 있는 테이블로 변환하여 단일 시퀀스 설정에서 이전 값이 주어진 시퀀스의 다음 값을 예측하는 방법을 설명합니다. 값. 그들은 선형 회귀 또는 회귀 트리와 같은 회귀 학습기를 사용하여 모델을 훈련할 것을 제안하지만 모델이 다음에서만 훈련되도록 워크포워드 검증 프로세스를 사용하여 데이터를 훈련, 검증 및 테스트 세트로 분할하는 것이 중요하다는 점에 주의합니다. 실제 사용 사례에서 발생하는 과거 데이터 및 미래 데이터에 대한 테스트.

  • 00:15:00 이 섹션에서는 연사가 순차 데이터를 사용하여 학습 및 예측을 위한 다양한 방법에 대해 설명합니다. 테스트 대상이 되기 전에 발생한 데이터에 대한 검증 및 교육의 중요성을 강조합니다. 단어 수준 모델링을 위한 확률 모델로 Markov 모델을 소개하고 확률의 연쇄 규칙을 사용하여 여러 무작위 변수의 결합 확률 분포를 분석하는 방법을 설명합니다. 그들은 "축하합니다, 당신은 상을 받았습니다"라는 문장을 6개의 개별 랜덤 변수인 6개의 랜덤 변수에 대한 결합 확률 분포로 분해하고 결합 확률 분포를 조건부 단어의 조건부 분포의 제품으로 분해하는 방법을 보여줍니다. 앞에 오는 말.

  • 00:20:00 이 섹션에서 화자는 문장을 조건부 확률의 곱으로 분해하여 문장의 확률을 계산하는 방법에 대해 설명합니다. 특정 단어의 확률이 매우 낮아질 수 있으므로 언더플로를 피하기 위해 로그 확률을 사용하는 것이 좋습니다. 특히 어휘가 많을 경우 로그를 사용하는 것이 좋습니다. 이상적인 언어 모델은 문법 규칙뿐만 아니라 상식적인 추론과 물리학도 포함해야 하지만, 현재 화자는 단어의 확률이 마지막 두 단어에만 의존한다고 가정하는 Markov 가정을 사용합니다. 말뭉치로 알려진 대규모 언어 데이터 세트에서 발생하는 횟수를 세어 이러한 확률을 추정할 수 있습니다.

  • 00:25:00 이 섹션에서는 비디오에서 Markov 모델과 조건부 확률을 사용하여 텍스트를 생성하는 언어 모델을 만드는 방법에 대해 설명합니다. Markov 모델은 순차 샘플링을 통한 텍스트 생성에 사용할 수 있는 일련의 단어에 대한 확률 계산을 허용합니다. 이 기술에는 한계가 있지만 언어 모델의 기능과 정확성을 테스트할 수 있습니다. 또한 분류에 Markov 모델을 사용할 수 있는데, 이는 스팸 또는 햄을 조건으로 언어 모델로 단어를 모델링하는 베이지안 분류기를 통해 이메일이 스팸일 확률을 유추할 수 있습니다.

  • 00:30:00 이 섹션에서 발표자들은 클래스가 주어진 시퀀스의 확률을 추정한 다음 베이즈 규칙을 사용하여 클래스 확률을 구함으로써 시퀀스 데이터를 모델링하는 데 사용되는 Markov 모델에 대해 논의했습니다. 0차 Markov 모델은 스팸에 사용할 수 있지만 다른 작업에는 고차 모델이 더 나을 수 있습니다. 그러나 Markov 모델은 단어를 원자 기호로 취급하고 일부 단어가 유사한 의미를 갖는다는 사실을 고려하지 않습니다. 이를 해결하기 위해 임베딩 모델을 사용하여 각 개체(이 경우 단어)에 개체 간의 유사성을 모델링하는 가중치 벡터를 할당할 수 있습니다. 이는 벡터 표현에서 이미지를 인코딩하는 것과 유사하게 잠재 요인을 계산하기 위해 이러한 벡터의 매개변수 또는 값을 학습하여 수행됩니다.

  • 00:35:00 이 섹션에서는 비슷한 단어 근처에 나오는 단어가 종종 같은 것을 의미할 수 있다는 분포 가설을 소개합니다. 단어 임베딩 알고리즘은 임베딩을 계산하기 위해 이 가설을 적용하는 것으로 논의됩니다. 알고리즘을 적용하기 전에 단어의 표현이 필요합니다. 이는 모든 단어에 대해 원-핫 벡터가 있는 신경망으로, 어휘가 임베딩 공간에 대해 300의 출력에 매핑되는 매우 간단한 신경망을 허용합니다. 모델의 하단 부분은 임베딩 공간에 대한 인코딩으로 사용되며 일부 연구자는 룩업 테이블이라고 생각하지만 본질적으로 원-핫 벡터에서 임베딩으로의 매핑과 동일합니다.

  • 00:40:00 이 섹션에서 강사는 단어와 같은 개별 개체를 조밀한 벡터로 표현하는 방법인 단어 임베딩의 개념에 대해 설명합니다. 임베딩은 임베딩의 선형 매핑 매트릭스를 생성하여 훈련되며, 단어 컨텍스트에서 확률 분포를 찾는 데 사용할 수 있습니다. 그는 "여자"에서 "남자"에 대한 임베딩을 빼면 사물이 더 여성스러워지는 방향을 만드는 방법과 이 방향을 사용하여 "여왕"과 같은 다른 단어에 대한 단어 벡터를 계산하는 방법에 대한 예를 제공합니다. 강사는 이러한 임베딩을 기계 학습을 위한 더 큰 신경망의 시작점으로 사용할 수 있는 방법과 엄청난 양의 텍스트 데이터에 대해 훈련된 방대한 수의 단어 임베딩을 다른 프로젝트에서 사용하기 위해 Google의 오픈 소스 모델 라이브러리에서 다운로드할 수 있는 방법을 설명합니다. .

  • 00:45:00 이 섹션에서 발표자는 다양한 길이의 시퀀스를 처리하는 방법과 시간을 모델링하는 방법을 포함하여 신경망으로 시퀀스를 모델링하는 방법에 대해 설명합니다. 한 가지 접근 방식은 순환 연결을 사용하는 것입니다. 이 연결에서는 숨겨진 계층이 이전 숨겨진 계층을 가져와 네트워크의 순환을 허용합니다. 이를 통해 네트워크는 길이가 다른 시퀀스에서 작동할 수 있으며 시퀀스 출력을 얻기 위해 한 번에 하나씩 시퀀스를 공급할 수 있습니다. 연사는 또한 패딩 시퀀스의 중요성을 강조하여 신경망을 사용한 일괄 처리 및 훈련을 위해 패딩 시퀀스를 동일한 길이로 만듭니다.

  • 00:50:00 이 섹션에서는 시간에 따른 역전파를 사용하여 순환 신경망을 훈련하는 과정을 설명합니다. 숨겨진 계층이 계속 변경됨에 따라 순환 계층을 통해 역전파되는 것이 문제입니다. 이를 해결하는 한 가지 방법은 반복 연결이 네트워크의 이전 복사본에서 다음 복사본으로 이동하도록 네트워크를 펼치는 것입니다. 결과 네트워크는 반복 연결이 없는 큰 피드포워드 네트워크로 취급되며 역전파를 통해 가중치가 업데이트됩니다. 이 교육 프로세스를 시퀀스 대 시퀀스 학습이라고 하며 입력 시퀀스가 출력 시퀀스에 매핑됩니다.

  • 00:55:00 이 섹션에서 스피커는 밴드 분류와 같은 시퀀스 데이터에서 출력 레이블이 오는 레이블에 대한 시퀀스를 설명합니다. 그러나 출력을 예측하기 위해 시퀀스의 마지막 요소만 사용하는 것은 이상적이지 않습니다. 비대칭을 생성하고 그래디언트 전파 문제가 발생할 수 있기 때문입니다. 대신, 시퀀스의 전체 출력을 가져와서 평균화하는 것이 좋습니다. 이렇게 하면 네트워크가 입력 시퀀스의 모든 부분을 고려할 수 있으므로 레이블을 더 잘 예측할 수 있습니다. 또한 스피커는 입력 레이블을 n번 반복하고 신경망에 공급하여 출력을 생성하거나 입력으로 최종 상태를 초기화하고 신경망에 0 벡터를 제공하여 순서. 그러나 이것은 효율적이지 않습니다. 순환 신경망은 사물을 빨리 잊는 경향이 있기 때문에 어떤 경우에는 Markov 모델이 더 나은 선택일 수 있습니다.

  • 01:00:00 이 섹션에서 발표자는 특히 기억할 가치가 있는 정보를 결정할 때 기억에 관한 Markov 모델의 한계에 대해 논의합니다. 해결책은 LSTM(Long Short-Term Memory)으로, 기억하거나 잊을 정보를 결정하는 여러 개의 학습 게이트가 있는 순환 신경망 유형입니다. 게이트에는 0과 1 사이 또는 -1과 1 사이의 두 값 벡터가 포함되어 있습니다. 여기서 왼쪽 값은 메모리에 추가할 부분을 선택하고 오른쪽 값은 입력 정보가 얼마나 필요한지에 따라 유지할 정보를 결정합니다. 추가 및 취소해야 하는 금액. LSTM을 사용하면 기억하기 위해 선택한 정보가 지속적으로 추가되므로 장기 기억을 유지하는 데 도움이 됩니다.

  • 01:05:00 이 섹션에서는 화자가 세포로 구성된 순환 신경망의 일종인 LSTM(Long Short-Term Memory) 네트워크의 구조를 설명합니다. 셀은 시간 단계 사이에 값 C(셀 상태)와 값 Y(출력)를 전달하면서 각 시간 단계에서 입력을 받고 출력을 제공합니다. 발표자는 LSTM 네트워크의 시각적 표기법을 분해하고 메모리의 활성화를 줄이는 잊어버리기 게이트와 메모리에 추가할 입력 부분을 결정하는 입력 게이트를 포함하여 다양한 게이트를 설명합니다. 마지막 단계는 다른 시그모이드 활성화 계층을 통해 발생하는 출력 값을 결정하는 것입니다. 발표자는 LSTM 네트워크 사용의 이점을 강조합니다. 네트워크의 척추 또는 컨베이어 벨트를 따라 기울기가 사라지지 않아 효율성이 향상됩니다.

  • 01:10:00 이 섹션에서 발표자는 LSTM에서 샘플링하여 문자 수준 시퀀스 생성기를 구축하는 방법을 설명합니다. 출력은 입력 이력을 기반으로 다음 문자에 대한 확률 분포입니다. 이 모델은 쉼표와 같은 항목을 배치하고, 새 줄을 배치하고, 큰 소리로 읽으면 셰익스피어처럼 들리는 근사 약강 오보격을 배웁니다. 이 모델은 더 강력하기 때문에 단어 수준이 아닌 문자 수준에서 데이터를 시퀀싱하도록 훈련되지만 몇 개의 문자만 샘플링하더라도 전체 시퀀스를 공급해야 합니다. 발표자는 링크와 특정 마크업 텍스트가 포함된 Wikipedia 기사를 편집하여 모델이 구문을 학습할 수 있음을 보여 주는 인상적이고 매우 셰익스피어적인 텍스트를 생성하는 셰익스피어 모델을 누군가 훈련하고 테스트한 실험을 인용합니다.

  • 01:15:00 이 섹션에서 발표자는 대용량 데이터에 대한 네트워크 교육을 통해 Wikipedia 기사 또는 Donald Trump 트윗과 같은 텍스트를 생성하는 데 LS DM을 사용하는 방법에 대해 논의합니다. HTML 또는 XML과 같이 LS DM이 나타낼 수 있는 다양한 모드를 강조하고 네트워크가 높은 수준의 수학 논문처럼 보이는 수학을 생성할 수도 있다고 언급합니다. 또한 화자는 신경망을 통해 생성된 음악의 예를 통해 추가로 시연되는 변형 외부 인코더(VAE)를 기반으로 하는 인코더/디코더 네트워크와 네트워크에 공급되는 랜덤 벡터를 사용하여 LS DM을 사용하여 임의 출력을 생성할 것을 제안합니다. MIDI 스니펫에 대한 교육을 받았습니다.

  • 01:20:00 이 섹션에서 발표자는 순차 샘플링 예측 언어 모델이 더 복잡한 시퀀스를 위해 외부 인코더와 결합되는 교사 강요 기술을 사용하여 언어를 모델링하는 방법에 대해 논의합니다. 그는 계속해서 인간이 고양이와 올빼미와 같은 다양한 주제를 빠르게 그리는 스케치를 모델링하는 데 사용되는 SketchRNN이라는 교사 강제를 사용하는 모델을 시연합니다. SketchRNN은 동일한 주제의 서로 다른 그림 사이를 부드럽게 보간하는 데 사용되는 잠재 공간으로 이어지는 시퀀스 인코더에 변형 시퀀스를 사용합니다. 마지막으로 발표자는 동일한 기술을 사용하여 사람의 문장 사이를 부드럽게 보간하여 매우 깔끔한 결과를 얻을 수 있는 방법을 보여줍니다.

  • 01:25:00 이 섹션에서 발표자는 이미지에서 일어나는 일을 설명하는 5개의 사람이 쓴 캡션과 함께 ImageNet이라는 데이터 세트의 이미지가 포함된 Image COCO 데이터 세트에 대해 설명합니다. 화자는 이미지 캡션 작업에 대한 간단한 접근 방식이 사전 훈련된 이미지 분류 모델을 다운로드하고 분류 계층을 제거하는 것이라고 제안합니다. 그런 다음 결과 매핑을 LSTM에 공급하여 캡션을 생성하도록 모델을 교육할 수 있습니다. 발표자는 임베딩 레이어를 사용하여 단어 수준 LSTM을 개선하는 방법과 LSTM과 Markov 모델의 차이점에 대해서도 설명합니다. 마지막으로 연사는 강력한 것부터 단순한 것까지 시퀀스 처리에 사용할 수 있는 방법의 스펙트럼에 대해 논의합니다.
 

12개의 매트릭스 모델: 추천 시스템, PCA 및 그래프 컨벌루션



12개의 매트릭스 모델: 추천 시스템, PCA 및 그래프 컨벌루션

비디오의 첫 번째 부분에서 연사는 제품 추천, 뉴스 기사 및 소셜 네트워크에 사용할 수 있는 추천 시스템에서 행렬 모델과 해당 응용 프로그램에 대해 설명합니다. 추천 시스템은 명시적 및 암시적 피드백과 부가 정보에 의존하며 적절하게 설계되지 않은 경우 허위 정보를 퍼뜨리도록 조작될 수 있습니다. 행렬 인수분해는 사용자 행동을 기반으로 등급을 예측하는 일반적인 방법으로, U 및 M 행렬을 찾아 UTM을 R에 최대한 가깝게 만드는 최적화 문제는 제곱 오차 방법을 통해 풀고 Frobenius 노름을 계산합니다. 발표자는 또한 경사 하강법을 사용하여 이 문제를 최적화하는 방법에 대해 논의하고 협업 필터링을 위한 경사도 업데이트 규칙을 설명합니다. 또한 연사는 사용자 및 영화 편향 제어, 암시적 좋아요 사용, 사이트 정보 통합을 포함하여 행렬 분해 모델을 개선하는 다섯 가지 방법을 다룹니다. 마지막으로 발표자는 고전적인 기계 학습 설정에서 행렬 분해의 힘, 행렬 분해에서 PCA의 확장 및 데이터 저장에서 그래프 모델의 유용성에 대해 논의합니다.

비디오의 두 번째 부분에서는 노드 분류 및 링크 예측을 위한 그래프 컨볼루션을 포함하여 추천 시스템을 위한 다양한 행렬 모델을 제시합니다. 그래프 컨볼루션은 원래 임베딩에 인접 행렬을 곱하여 노드 임베딩을 혼합하지만 이 접근 방식은 대규모 소셜 그래프를 표현하는 데 한계가 있습니다. 기존 검증 방법은 추천 시스템에 사용되는 혼합 기능 모델에는 작동하지 않으므로 교육 세트 레이블만 보류되고 기능은 보류되지 않는 변환 학습이 필요합니다. 또한 시간 및 등급 데이터를 모델링하려면 타임스탬프 데이터와 변환 학습을 고려해야 합니다. 비디오는 강의 요약과 강화 학습에 대한 다음 토론의 미리 보기로 끝납니다.

  • 00:00:00 이 섹션에서 발표자는 매트릭스로 가장 잘 보이는 데이터 세트를 분석하는 다양한 접근 방식인 매트릭스 모델의 개념을 소개합니다. 논의될 모델들은 데이터 세트를 행렬로 다루는 특성을 공유합니다. 강의는 일반적으로 행렬 분해를 통해 구현되는 추천 시스템에 중점을 두고 Netflix 경쟁에서 승리한 모델에 대해 논의합니다. 강의는 유효성 검사에 대한 토론으로 결론을 내리기 전에 주성분 분석 및 그래프 모델에 대해 간략하게 다룹니다.

  • 00:05:00 이 섹션에서 발표자는 추천 시스템에서 사용할 수 있는 세 가지 형태의 데이터인 명시적 피드백, 암시적 피드백 및 부가 정보를 설명합니다. 명시적 피드백은 사용자에게 특정 항목을 평가하도록 요청하는 경우로, 이는 매우 가치가 있지만 상대적으로 드뭅니다. 암시적 피드백은 페이지뷰, 위시리스트 또는 마우스 움직임과 같이 사용자가 수행하는 작업을 살펴봄으로써 수집할 수 있습니다. 부가 정보는 사용자와 영화의 페어링에 대한 정보가 아니라 길이, 배우, 감독과 같은 사용자 자신과 영화에 대한 정보입니다. 발표자는 추천 시스템이 제품 추천(예: Amazon), 뉴스 기사(예: Google 뉴스) 및 소셜 네트워크(예: Twitter 및 YouTube)를 비롯한 다양한 설정에 유용하다고 언급합니다.

  • 00:10:00 이 섹션에서는 발표자가 추천 시스템과 해당 취약점에 대해 설명합니다. 추천 시스템은 특정 사용자에게 콘텐츠를 제안하는 데 사용되지만 조작되어 잘못된 정보를 퍼뜨릴 수 있습니다. 화자는 두 세트의 사물과 이들 사이의 관계가 있는 모든 상황을 추천 패러다임으로 간주할 수 있다고 언급합니다. 예를 들어 조리법과 재료 또는 정치인과 투표법. 추천 시스템의 문제는 모든 사용자가 모든 영화를 평가하지 않기 때문에 불완전한 데이터입니다. 발표자는 임베딩 모델을 사용하여 각 사용자와 영화에 벡터를 할당하고 누락된 데이터를 예측하기 위해 손실 함수를 기반으로 해당 벡터의 값을 학습할 것을 제안합니다.

  • 00:15:00 이 섹션에서 발표자는 사용자 행동을 기반으로 영화 등급을 예측하는 것을 목표로 모델에서 사용자와 영화를 나타내는 방법으로 행렬 분해를 설명합니다. 모델은 각 사용자와 각 영화에 벡터를 할당한 다음 큰 행렬에서 함께 곱합니다. 화자는 내적을 사용하여 모델이 음수 무한대와 양수 무한대 사이의 값을 예측하는 방법을 설명합니다. 값이 높을수록 사용자가 영화를 좋아할 가능성이 더 높다는 것을 나타냅니다. 모델의 범주는 사용자 행동에 대한 얕은 가정을 강화하는 경향이 있으며 특별히 정제되지는 않았지만 모델은 여전히 신뢰할 수 있는 예측을 제공할 수 있습니다. 행렬 분해를 통해 행렬은 두 개의 더 작은 행렬로 분해됩니다. 하나는 사용자를 포함하고 다른 하나는 영화를 포함하며 내적은 예측을 나타냅니다.

  • 00:20:00 이 섹션에서 발표자는 UTM을 R에 최대한 가깝게 만들기 위해 U 및 M 행렬을 찾는 최적화 문제를 설명합니다. 이는 제곱 오차 방법을 사용하고 Frobenius 노름을 계산하여 수행됩니다. 그러나 문제는 등급 매트릭스에 종종 누락된 값이 있다는 것입니다. 이 문제를 해결하기 위해 손실 함수는 R의 모든 요소가 아닌 훈련 세트에서 등급이 알려진 R의 요소에 대해서만 계산됩니다. 발표자는 또한 이 문제를 최적화하는 두 가지 방법인 교차 최적화에 대해 설명합니다. 그리고 경사하강법. 경사하강법은 모델에 더 유연하고 쉽게 추가할 수 있습니다.

  • 00:25:00 이 섹션에서 발표자는 매트릭스 인수 분해를 사용한 협업 필터링 기술에 대한 그래디언트 업데이트 규칙을 설명합니다. 그는 오류 행렬을 정의하고 매개변수와 관련하여 손실 함수의 도함수를 취하는 과정을 설명합니다. 그런 다음 그래디언트 업데이트 규칙을 사용하여 사용자 및 영화 임베딩 값을 업데이트하는 방법을 보여줍니다. 업데이트 규칙에는 오류 행렬의 행과 열과 각 임베딩 행렬 사이의 내적을 계산하고 업데이트되는 매개 변수에 추가하는 것이 포함됩니다.

  • 00:30:00 이 섹션에서 발표자는 추천 시스템의 내적 예측 함수 이면의 논리와 확률적 경사 하강법을 사용하여 학습할 수 있는 방법을 설명합니다. 긍정적인 평가만 있는 문제와 부정적인 샘플링을 통해 이를 해결하는 방법도 논의됩니다. 그런 다음 연사는 PCA의 잠재 공간 개념과 유사하게 영화에 대해 해석 가능한 차원을 생성하는 음이 아닌 행렬 분해 문제를 해결하는 두 가지 방법을 탐구합니다.

  • 00:35:00 이 섹션에서 화자는 영화 추천을 위한 행렬 분해 모델을 개선하는 다섯 가지 방법에 대해 논의합니다. 첫째, 그녀는 학습된 스칼라 매개변수를 추가하여 사용자 및 영화 편향을 제어하는 방법을 모델에 통합할 수 있는 방법을 설명합니다. 둘째, 브라우징 동작과 같은 암시적 좋아요를 사용하여 두 번째 사용자 임베딩을 생성하여 골드 스타 또는 콜드 스타트 문제를 해결합니다. 셋째, 손실 함수에 페널티 항을 추가하여 과적합을 방지하도록 모델을 정규화할 수 있습니다. 넷째, 주성분 분석(PCA)을 적용하여 사용자 및 영화 임베딩의 차원을 줄일 수 있습니다. 마지막으로 발표자는 그래프 컨벌루션을 사용하여 영화 장르 및 출연진에 대한 정보를 모델에 통합하는 방법에 대해 이야기합니다.

  • 00:40:00 이 섹션에서 발표자는 추천 시스템에 암시적 정보와 사이트 정보를 추가하는 방법을 설명합니다. 암시적 정보의 경우 시스템은 사용자가 좋아한 모든 영화 임베딩을 합산하여 기존 임베딩에 추가합니다. 마찬가지로 사이트 정보의 경우 사용자의 특징을 범주형 데이터로 인코딩하고 해당 임베딩을 합산하여 세 번째 임베딩 벡터를 생성합니다. 화자는 또한 시간이 시청률에 영향을 미칠 수 있으므로 좋은 예측을 위해서는 시간을 제어하는 것이 필요하다고 지적합니다. 이는 임베딩을 불연속 기간으로 청크하고 각 기간에 대해 서로 다른 임베딩을 학습하여 수행할 수 있습니다. 이 섹션은 추천 시스템에 대한 행렬 분해 및 편향에 대한 요약으로 결론을 내립니다.

  • 00:45:00 이 섹션에서 발표자는 추천 시스템에서 행렬 분해의 힘과 고전적인 기계 학습 설정에 적용할 수 있는 방법에 대해 설명합니다. 기능 열과 인스턴스 행의 행렬을 취함으로써 역전파 또는 기타 교육 방법을 통한 행렬 분해는 C 벡터 C 행렬과 곱하여 복구할 수 있는 인스턴스의 저차원 표현을 생성할 수 있습니다. 이는 주성분 분석(PCA)과 같은 차원 감소 기술과 유사하지만 C의 열이 선형적으로 독립적이라고 가정하여 PCA와 동일하게 만들 수 있으므로 제한된 최소화 문제가 발생합니다.

  • 00:50:00 이 섹션에서 발표자는 PCA와 행렬 인수 분해의 확장에 대해 설명합니다. 그들은 데이터의 알려진 값에 대해서만 재구성을 최대화함으로써 불완전한 데이터에 PCA를 사용할 수 있다고 설명합니다. 이렇게 하면 분류 또는 회귀에 사용할 수 있는 데이터의 저차원 표현 또는 포함이 가능합니다. Sparse PCA의 확장도 도입되어 L1 regularizer를 사용하여 희소성을 적용하고 매개변수 해석을 더 쉽게 만듭니다. 발표자는 계속해서 이진 데이터에 대한 이진 교차 엔트로피와 같은 행렬 분해 문제에 다양한 손실 값을 적용할 수 있는 방법을 설명하고 이러한 방법이 데이터에 대해 더 나은 임베딩을 생성할 수 있는 방법을 보여줍니다. 이 섹션은 유용한 데이터 형식인 그래프 모델에 대한 소개로 결론을 내립니다.

  • 00:55:00 이 섹션에서 발표자는 소셜 네트워크, 단백질 상호 작용, 트래픽 네트워크 및 지식 그래프와 같은 데이터를 저장하는 그래프의 유연성에 대해 논의합니다. 그런 다음 연사는 특히 추천 문제와 유사하게 볼 수 있는 링크 예측 및 노드 분류 작업을 위해 그래프를 사용할 수 있는 기계 학습 모델을 사용하는 아이디어를 제안합니다. 연사는 노드 임베딩의 개념을 소개하고 그래프를 더 깊이 들여다보고 기본 임베딩을 확장하는 방법으로 그래프 컨벌루션 신경망에 대해 논의합니다.

  • 01:00:00 이 섹션에서는 발표자가 추천 시스템에서 그래프 컨볼루션이 작동하는 방식을 설명합니다. 그래프 컨볼루션은 그래프의 각 노드에 임의의 차원 임베딩을 할당하며, 이는 시각화를 위해 임의의 색상을 할당하는 것으로 해석될 수 있습니다. 그래프 컨볼루션 이면의 직관은 이러한 임베딩을 혼합하여 노드의 이웃에서 자체 임베딩으로 정보를 가져올 수 있다는 것입니다. 여러 단계의 혼합 후 모든 노드는 결국 전체 그래프를 나타내는 동일한 표현을 갖게 됩니다. 노드 임베딩을 혼합하기 위해 인접 행렬에 원본 임베딩을 곱하여 각 노드 임베딩이 이웃과 자신의 합을 나타내는 새 임베딩을 제공합니다. 값이 폭발하지 않도록 임베딩을 정규화해야 합니다.

  • 01:05:00 이 섹션에서 발표자는 노드 분류 및 링크 예측을 위해 그래프 컨벌루션을 사용하는 방법을 설명합니다. 노드 분류를 위해 간단한 그래프에 각 노드에 대한 임베딩을 할당하고 하나의 그래프 컨벌루션을 적용하여 인접 노드를 기반으로 새로운 임베딩을 생성합니다. 그런 다음 분류를 위해 임베딩을 2차원에 매핑하기 위해 또 다른 컨볼루션이 적용됩니다. 링크 예측을 위해 노드 임베딩은 그래프 컨벌루션의 여러 계층을 통해 생성되며 이러한 임베딩 위에 행렬 분해 모델이 사용됩니다. 그런 다음 그라디언트는 더 깊은 그래프 구조를 기반으로 하는 링크 예측을 위해 원래 그래프 컨벌루션을 통해 역전파하는 데 사용됩니다.

  • 01:10:00 비디오의 이 섹션에서 발표자는 선택적이고 지나치게 포괄적이지 않은 방식으로 소셜 그래프를 나타내는 것과 관련된 그래프 컨볼루션의 문제에 대해 논의합니다. 소셜 그래프의 작은 세계 속성으로 인해 각 노드의 표현에서 전체 그래프를 나타내는 것은 문제가 있으며 기존 그래프 컨볼루션은 불필요한 정보를 효과적으로 필터링하지 못합니다. 또한 전체 배치에서 교육을 수행해야 하므로 성능이 저하될 수 있습니다. 화자는 보다 선별적인 접근 방식으로 그래프 어텐션을 제안하지만 여전히 활발히 연구되고 있는 영역입니다. 연사는 또한 그래프 컨볼루션 모델에 대한 검증이 어렵고 표준 머신 러닝 검증 방법에서 벗어나야 한다는 점에 주목합니다.

  • 01:15:00 이 섹션에서 발표자는 사용자 기능이나 동영상 기능을 보류하면 임베딩이 손실되기 때문에 추천 시스템에서 사용되는 것과 같은 혼합 기능 접근 방식에는 기존의 교육 테스트 검증 방법이 작동하지 않는다고 설명합니다. 대신 훈련 세트 레이블만 보류되고 기능은 보류되지 않는 변환 학습이 필요합니다. 이 접근 방식은 사전에 전체 어휘를 알아야 하는 임베딩 모델을 교육할 때 중요합니다. 그러나 훈련 및 테스트에 사용할 나머지 데이터에 대해서는 임의 등급 또는 링크를 보류할 수 있습니다. 마지막으로 발표자는 노드 ID 라벨링의 분류가 여전히 전체 그래프를 사용하여 수행될 수 있다고 언급합니다.

  • 01:20:00 이 섹션에서 연사는 타임스탬프 데이터와 변환 학습을 고려해야 하는 데이터 세트에서 시간과 등급을 모델링하는 문제에 대해 논의합니다. 그들은 미래의 훈련 데이터가 없는 것이 중요하고 테스트 세트가 훈련 세트의 미래에 있어야 한다고 설명합니다. 또한 발표자는 추천의 추상적인 작업을 해결하기 위해 매트릭스 분해를 사용하는 방법과 그래프 모델 및 그래프 컨벌루션을 사용하여 추천을 일반화하는 방법을 강조하면서 강의를 요약합니다. 섹션은 강화 학습에 대한 다음 강의의 미리보기로 끝납니다.
 

13 강화 학습: 정책 기울기, Q 학습, AlphaGo, AlphaStar(MLVU2019)



13 강화 학습: 정책 기울기, Q 학습, AlphaGo, AlphaStar(MLVU2019)

이 비디오는 강화 학습과 기본 구성 요소를 소개하고 로봇 기둥 균형 자동차 및 tic-tac-toe 게임과 같은 예를 논의합니다. 연사는 미분할 수 없는 기능, 보상 수령 지연 및 크레딧 할당 문제를 포함하여 강화 학습의 문제를 탐구합니다. 크레딧 할당 문제는 임의 검색, 정책 기울기, Q-러닝과 같은 기술을 통해 해결되며, 여기에서 화자는 각 알고리즘, 이점 및 제한 사항을 설명합니다. Q-학습 알고리즘은 Q-값을 나타내는 큰 숫자 테이블을 사용하여 작동하는 방식에 대한 설명과 함께 더 자세히 설명합니다. 프레젠테이션은 심층 Q-러닝과 AlphaGo가 강화 학습 분야를 어떻게 혁신했는지에 대한 설명으로 마무리됩니다.

  • 00:00:00 이 섹션에서 강사는 강화 학습의 주제를 소개하고 이것이 오프라인 학습과 어떻게 다른지 설명합니다. 강화 학습에는 세계와 상호 작용하고 받는 피드백에서 실시간으로 학습하는 에이전트 모델링이 포함됩니다. 미지의 환경에 있는 로봇 진공 청소기의 예는 이 개념을 설명하는 데 사용됩니다. 강사는 또한 강화 학습 작업을 해결하기 위한 세 가지 알고리즘, 즉 무작위 검색, 정책 그래디언트 및 Q-러닝에 대해 언급합니다. 그런 다음 논의는 AlphaGo, AlphaZero 및 AI를 사용하여 스타크래프트 II에서 세계 최고의 인간 플레이어를 이기기 위한 지속적인 탐구에 중점을 둔 강화 학습의 최근 개발로 이동합니다.

  • 00:05:00 이 섹션에서는 강사가 환경, 모델 및 학습자를 포함하는 강화 학습의 기본 프레임워크를 설명합니다. 모델은 조치를 취하고 즉각적인 보상을 받고 그에 따라 상태를 변경하며 학습자는 모델을 즉시 업데이트합니다. 강사는 강화 학습이 어떻게 작동하는지 설명하기 위해 진공 청소기 문제, 틱택토, 제어 문제와 같은 간단한 예를 소개합니다. tic-tac-toe 및 진공 청소기 문제에서는 모델이 최종 상태에 도달했을 때만 보상이 제공되는 반면 제어 문제는 자동화된 환경에서 로봇 또는 기계를 제어하는 방법을 학습하는 것과 관련됩니다.

  • 00:10:00 이 섹션에서 연사는 현장에서 제어의 고전적인 문제인 로봇 기둥 균형 자동차의 맥락에서 강화 학습에 대해 논의합니다. 목표는 간단한 물리 엔진이나 물리적 로봇으로 자동차를 똑바로 세우는 것입니다. 이 시스템은 희박한 보상을 사용하며, 여기서 주어지는 유일한 보상은 카트가 레일에서 떨어지거나 막대가 수직이 되는 경우입니다. 학습 목표는 가능한 한 오랫동안 이 페널티를 피함으로써 보상을 극대화하는 것입니다. 그런 다음 발표자는 감독 학습으로 시작하여 보조 목표 및 보상 형성을 추가하는 강화 학습을 사용하여 스턴트를 수행하도록 훈련된 원격 조종 헬리콥터의 시연을 보여줍니다.

  • 00:15:00 이 섹션에서 연사는 강화 학습이 딥 러닝 게임을 어떻게 바꾸었는지 논의합니다. 그는 AlphaGo 이전에 연구원들이 Atari 게임을 사용하여 픽셀에서 학습하는 알고리즘을 얻었다고 지적합니다. 그들은 시스템이 다양한 게임을 플레이하는 방법을 학습할 수 있게 해주는 심층 강화 학습이라는 신경망을 만들었습니다. 연구자들이 심층 신경망을 사용하여 우리가 정책이라고 부르는 상태에서 행동으로의 매핑을 학습했기 때문에 이것은 강력한 개념입니다. 강화 학습에는 미분할 수 없는 손실, 크레딧 할당 문제, 탐색 대 착취라는 세 가지 주요 문제가 있습니다.

  • 00:20:00 이 섹션에서 화자는 환경 내에서 미분할 수 없는 기능 문제와 탐색과 착취 사이의 균형을 포함하여 강화 학습의 문제에 대해 논의합니다. 환경으로부터 실제 보상을 받는 데 지연되는 것은 또 다른 문제입니다. 이전 작업이 최종 결과에 기여한 것을 인식해야 하기 때문입니다. 연사는 또한 제동에 대한 즉각적인 보상이 후속 충돌과 잘못된 연관성으로 이어질 수 있는 자동차 운전을 배울 때 직면하는 문제의 예를 제공합니다. 이 솔루션은 이전 작업에 대한 보상을 분배하고 어떤 작업이 긍정적 또는 부정적인 결과로 이어졌는지 학습해야 합니다.

  • 00:25:00 이 섹션에서 비디오는 세계와 상호 작용하는 동안 보상을 최대화할 신경망의 가중치 결정과 관련된 강화 학습의 크레딧 할당 문제를 소개합니다. 이 비디오는 보상 기능, 상태 전환 및 정책이 신경망의 환경을 결정하는 방법을 설명합니다. 이 문제를 해결하기 위한 세 가지 접근 방식을 제시하며, 가장 간단한 방법인 무작위 검색부터 시작합니다. 인구 기반 블랙박스 최적화 방법의 개념도 도입되었으며, 이 방법을 "Frostbite"라는 Atari 게임에 성공적으로 적용한 예를 보여줍니다.

  • 00:30:00 이 섹션에서 강사는 학점 할당 문제에 사용되는 강화 학습 및 다양한 기술에 대해 설명합니다. 그들은 기본 접근 방식으로 임의 검색으로 시작하는 것이 좋습니다. 이는 일부 간단한 게임에 적합합니다. 그러나 정책 그래디언트 및 Q-러닝과 같은 더 복잡한 방법은 더 깊은 강화 학습 파이프라인에 널리 사용됩니다. Policy Gradient는 끝에 있는 총 보상을 기반으로 시퀀스에서 궤적의 각 단계에 보상을 할당하려고 합니다. 직관에 어긋나는 것처럼 보일 수 있지만 여러 궤적에 대해 평균을 내며 딥 러닝 파이프라인의 일부를 미분할 수 없는 상황에서 잘 작동합니다.

  • 00:35:00 이 섹션에서는 정책 기울기의 개념과 기울기 추정을 통해 기대되는 최종 보상을 최적화하는 데 사용할 수 있는 방법에 대해 설명합니다. 이 알고리즘은 여러 궤적을 샘플링하고 나머지 파이프라인을 통해 이러한 각 작업을 따르고 최종 보상에 샘플의 각 궤적에 대한 해당 작업 확률의 로그 기울기를 곱하여 기울기를 추정합니다. 그런 다음 이 기울기 추정을 추가 역전파에 사용할 수 있습니다. 이 알고리즘은 AlphaGo 및 AlphaZero에서 사용되었습니다.

  • 00:40:00 이 섹션에서 화자는 할인된 보상을 최적화하는 데 사용되는 강화 학습에서 널리 사용되는 알고리즘인 Q-러닝에 대해 설명합니다. 할인된 보상은 다른 상태에서 특정 작업을 선택하는 경우 정책이 받게 되는 총 보상입니다. Q-러닝은 재귀 함수를 사용하여 정책의 조치를 기반으로 각 상태에 대해 할인된 보상을 계산합니다. 할인된 보상을 최대화하는 최적의 정책은 이 계산을 기반으로 결정됩니다. 발표자는 Q-러닝이 어떻게 작동하는지 설명하기 위해 진공 청소기 세계의 간단한 예를 사용합니다.

  • 00:45:00 이 섹션에서는 화자가 강화 학습에서 최적 정책과 최적 가치 함수의 개념을 설명합니다. 최적의 정책은 특정 상태에 대한 최대값으로 이어지는 반면 최적의 가치 함수는 해당 정책의 가치 함수입니다. 그러나 이러한 값은 종종 계산하기 어렵습니다. 그런 다음 스피커는 Q라는 함수로 최적 정책 및 최적 가치 함수를 재정의하는 Q-러닝 알고리즘을 소개합니다. Q는 조치를 취한 다음 상태에 대해 Q의 할인된 값을 곱한 즉각적인 보상으로 정의됩니다. 현재 상태에서. Q의 순환 정의는 Q 함수를 구성하고 값을 채워 최적인지를 묻는 가능성을 허용합니다.

  • 00:50:00 이 섹션에서 화자는 Q-러닝을 위한 최적의 Q 함수를 찾는 방법으로 순환 방정식을 반복적으로 푸는 방법에 대해 논의합니다. 그는 스칼라 함수를 사용하여 반복 관계를 단순화하고 반복 계산을 사용하여 안정적인 상태/해를 찾을 수 있음을 보여줍니다. 마찬가지로 Q-learning의 경우 초기 Q 함수를 임의로 초기화한 다음 반복 관계를 프로그램으로 적용하고 반복 관계에서 제공하는 값을 기반으로 Q 함수를 업데이트합니다. Q 함수의 값은 상태, 행동, 보상 또는 후속 상태가 발생하는 환경과의 각 상호 작용 후에 업데이트되며 각 후속 상태에 대한 최대 값은 Q 함수를 업데이트하는 데 사용됩니다.

  • 00:55:00 이 섹션에서는 Q 값을 나타내는 큰 숫자 테이블을 학습하는 Q 학습 알고리즘에 대해 설명합니다. 알고리즘은 각 상태에서 즉각적인 보상을 관찰하고 동일한 궤적의 반복을 통해 시작 상태로 다시 전파하는 방식으로 작동합니다. 상태 공간은 임의로 상태를 탐색할 약간의 확률로 최상의 정책을 따르는 프로세스인 엡실론 탐욕 탐색을 통해 탐색됩니다. 그런 다음 Q-값 함수를 학습하기 위해 신경망을 구현하는 딥 Q 학습이 도입됩니다. 역전파를 통해 네트워크는 관찰된 즉시 보상 및 후속 상태의 정보로 업데이트됩니다. 마지막으로 다큐멘터리 '알파고'의 추천에 이어 남은 30분 영상에서는 알파고의 작동 방식에 대한 설명을 약속한다.

  • 01:00:00 이 섹션에서 화자는 바둑 게임을 설명하고 AlphaGo에 대한 몇 가지 일반적인 오해를 불식시킵니다. 바둑 게임이 분기 요인이 높은 것은 사실이지만 게임을 어렵게 만드는 것은 나무의 크기만이 아닙니다. 최상의 이동 전략을 찾기 위해 트리를 자세히 살펴보는 것도 어려운 측면입니다. 연사는 또한 현재 상태에서 가능한 모든 미래를 열거하는 데 사용되는 미니맥스 알고리즘과 같은 바둑 게임에 대한 오래된 접근 방식에 대해서도 논의합니다.

  • 01:05:00 이 섹션에서 연사는 미니맥스 알고리즘에 근접하기 위해 게임 트리를 빠르고 효율적으로 탐색하는 방법인 Monte Carlo 트리 검색에 대해 설명합니다. 이 방법은 무작위로 동작을 선택하고 강화 학습 용어로 상태 값을 추정하는 롤아웃 수행을 포함합니다. 연사는 Monte Carlo 트리 검색이 롤아웃과 로컬 트리의 메모리 유지를 결합하여 전체를 탐색하지 않고 트리의 유망한 영역을 구축하는 방법에 대해 이야기합니다. 기본 알고리즘에는 노드 확장, 롤아웃 수행 및 값 역전파가 포함되어 리프로 이어지는 모든 노드의 확률을 업데이트합니다. 이 방법은 잘 작동하며 기계 학습이나 신경망을 포함하지 않습니다.

  • 01:10:00 이 섹션에서 발표자는 AlphaGo와 AlphaZero가 어떻게 바둑 게임에 적용된 강화 학습의 예인지 설명합니다. AlphaGo는 정책 네트워크와 가치 네트워크라는 두 가지 신경망을 사용하여 바둑을 칩니다. 정책 네트워크는 보드의 상태를 행동에 매핑하고 가치 네트워크는 상태를 해당 상태에서 승리할 가능성에 매핑합니다. 그들은 모방 학습을 사용하여 인간 게임에서 학습하여 이러한 네트워크를 훈련한 다음 정책 그래디언트 강화 학습을 사용하여 자가 플레이를 통해 개선합니다. 실제 플레이 중에 AlphaGo는 값 및 정책 네트워크와 함께 Monte Carlo 트리 검색을 사용하여 이동합니다. AlphaZero는 사람의 정보를 전혀 사용하지 않고 완전히 셀프 플레이를 통해 게임에 대한 이해를 구축하는 최신 버전입니다. AlphaZero는 정책 및 가치 네트워크를 단일 네트워크로 결합하고 Monte Carlo 트리 검색을 정책 개선 연산자로 사용하며 배치 정규화로 잔여 연결을 추가하여 성능을 향상시킵니다.

  • 01:15:00 이 섹션에서는 네트워크가 정책 및 값 출력 모두에서 그래디언트를 가져오는 공유된 하위 계층 집합을 갖는 "두 머리 괴물"의 개념에 대해 설명합니다. 교육 중에 MCTS 원칙은 초기 정책으로 시작하여 MCTS를 사용하여 자신과 대결하고 결과 정책을 MCTS로 관찰하는 것과 같이 정책 개선 연산자로 사용됩니다. 이 관찰된 개선 단계는 네트워크에 훈련 목표로 제공됩니다. 또한 잔여 연결과 더 나은 정규화의 조합은 신경망에 대한 트릭으로 사용되어 특히 배치 정규화와 함께 매우 잘 작동하는 더 깊고 더 깊은 신경망을 학습하는 데 점진적으로 쉽게 허용합니다.

  • 01:20:00 이 섹션에서 발표자는 심층 강화 학습 네트워크를 적절하게 교육하기 위한 데이터의 가중치 초기화 및 표준화의 중요성에 대해 논의합니다. 발표자는 가중치를 초기화하여 입력이 0 평균 및 분산 1로 표준화되도록 하면 역전파 중에 기울기가 더 잘 작동할 것이라고 제안합니다. 배치 정규화는 배치의 모든 인스턴스를 살펴보고 평균 및 표준 편차를 계산하고 표준화하기 때문에 이러한 표준화를 돕는 데 유용한 계층입니다. 이것은 훈련 속도를 높이고 훨씬 더 깊은 네트워크를 훈련시키는 데 도움이 될 수 있습니다. 화자는 배치 정규화를 사용한 훈련에서 AlphaGo와 AlphaZero의 성공을 인용합니다.

  • 01:25:00 이 섹션에서는 연사가 실시간 전략 게임에 적용된 DeepMind의 최신 기계 학습 혁신인 AlphaStar의 개발에 대해 논의합니다. DeepMind의 AlphaGo에 의해 "해결"되었다고 여겨졌던 바둑 게임과 달리, StarCraft는 다양한 행동 공간, 불완전한 정보, 게임 트리의 부재로 인해 기계 학습에 고유한 문제를 제기했습니다. AlphaStar는 트랜스포머 몸통, 심층 LSDM 코어, 포인터 네트워크 및 다중 에이전트 학습을 포함한 기술 조합을 사용합니다. DeepMind는 아직 AlphaStar의 작동 방식에 대한 세부 정보를 게시하지 않았지만 세계 수준의 Starcraft 플레이어에 대한 능력 시연은 인상적이며 이 분야의 현재 상태를 나타냅니다.

  • 01:30:00 이 섹션에서 발표자는 임베딩처럼 작동하고 신경망이 단위 간의 관계 학습을 시작할 수 있도록 하는 변환기의 사용에 대해 논의합니다. 이것은 신경망이 예를 들어 게임 내비게이션을 위해 특정 단위 사이의 관계에 대해 추론할 수 있게 해주기 때문에 중요합니다. 그런 다음 연사는 순차적 샘플링에서 강화 학습이 작동하는 방식과 자동 회귀 정책 헤드가 보다 일관되고 효율적인 일련의 작업을 생성하는 데 어떻게 도움이 되는지 설명합니다. 마지막으로 연사는 다중 에이전트 학습의 개념과 이를 사용하여 플레이어가 쉬운 전략을 이기는 것을 잊지 않도록 하는 방법을 설명합니다.

  • 01:35:00 이 섹션에서 발표자는 DeepMind가 StarCraft 게임을 플레이하기 위해 개발한 AI 시스템인 AlphaStar를 둘러싼 논란에 대해 논의합니다. AlphaStar는 스타크래프트의 프로 선수들을 물리치는 데 성공하여 AI 시스템이 실제로 인간과 같은 성능을 발휘하는지 아니면 인간이 가지고 있지 않은 능력을 악용하는지에 대한 논쟁으로 이어졌습니다. AlphaStar의 주요 장점 중 하나는 계속해서 카메라 뷰를 조정해야 하는 인간 플레이어와 달리 전체 보드를 한 번에 볼 수 있다는 것입니다. 또한 AlphaStar는 분당 약 600개의 동작으로 제한되었지만 이러한 동작은 소음이 많은 상태에서 분당 최대 800번 클릭할 수 있는 인간 플레이어의 동작보다 품질이 더 뛰어났습니다. 하지만 AlphaStar의 한 가지 약점은 게임 중 마주치는 새로운 전략에 잘 대응하지 못하는 점인데, 이는 인지에 대한 통찰력을 제공할 수 있는 시스템의 핵심 문제입니다.
 

14 리뷰: 귀납적 편향, 알고리즘적 편향, 기계 학습의 사회적 영향(MLVU2019)



14 리뷰: 귀납적 편향, 알고리즘적 편향, 기계 학습의 사회적 영향(MLVU2019)

비디오의 첫 번째 부분에서는 손실 함수, 딥 러닝 시스템, 귀납 및 알고리즘 편향, 머신 러닝의 공개 문제를 포함한 머신 러닝 주제에 대한 포괄적인 리뷰를 제공합니다. 연사는 데이터 과학 프로세스에서 방법론과 실제 사용 사례의 중요성을 강조하고 미루는 습관을 연구하고 극복하기 위한 팁을 제공합니다. 연사는 또한 기계 학습 개념에 대한 이해를 개선하기 위한 전략에 대해 논의하고 추가 학습을 위한 리소스를 제공합니다. 마지막으로 비디오는 기계 학습 모델의 일반화 문제와 모델 성능 향상에 있어 귀납적 편향의 중요성을 강조합니다.

비디오의 두 번째 부분에서는 귀납적 편향, 알고리즘 편향 및 기계 학습의 사회적 영향을 포함하여 기계 학습과 관련된 몇 가지 문제에 대해 설명합니다. 인과성, 구성성 및 일반화 문제를 해결하기 위해 귀납적 편향을 신경망에 구축할 수 있습니다. 그러나 이 접근 방식에는 모델링되지 않은 변수에 대한 견고성 감소를 포함하여 제한 사항도 있습니다. 기계 학습 모델이 데이터의 편향을 강화하는 경우 알고리즘 편향이 영속될 수 있습니다. 이는 얼굴 인식 알고리즘이 유색인종을 인식하지 못하는 경우나 미국 사법 시스템에서 사용되는 알고리즘이 흑인에게 편향된 경우 문제가 될 수 있습니다. 이러한 시스템의 책임 있는 개발은 의사 결정 과정에서 편견을 지속시키고 공정성을 촉진하는 것을 방지하는 데 중요합니다.

  • 00:00:00 비디오의 이 섹션에서 연사는 분류 또는 회귀, 인스턴스 및 기능 선택, 모델 클래스를 선택하고 인스턴스와 기능에 맞는 좋은 모델을 검색합니다. 연사는 방법론의 중요성과 테스트 세트를 과도하게 사용하지 않도록 데이터를 훈련 세트와 테스트 세트로 분리하는 아이디어를 강조합니다. 그는 실제 사용 사례를 염두에 두고 해당 사용 사례를 반영하는 데이터 과학 프로세스에서 결정을 내리는 것의 중요성을 강조합니다. 연사는 또한 시험 전략과 기계 학습의 현재 상태 및 미래 영향에 대한 전망을 제공합니다.

  • 00:05:00 이 섹션에서 화자는 정확도와 한계를 시작으로 기계 학습에 사용할 수 있는 다양한 손실 함수에 대해 논의합니다. 로지스틱 회귀 손실 함수는 시그모이드 함수를 사용하여 모델의 출력을 클래스에 대한 확률로 해석한 다음 최대 우도 원리와 교차 엔트로피 손실을 사용하여 해당 확률을 최적화합니다. 논의된 다른 손실 함수에는 최소 제곱, 엔트로피 및 소프트 마진 SVM이 포함됩니다. 마지막으로 연사는 복잡한 모델을 모듈 구성으로 분해하고 체인 규칙을 사용하여 로컬 도함수의 곱을 얻음으로써 복잡한 모델의 그래디언트를 계산하는 데 사용되는 역전파 알고리즘을 소개합니다.

  • 00:10:00 비디오의 이 섹션에서 강사는 딥 러닝 시스템의 기본 사항과 텐서를 사용하여 부드러운 미분 가능 함수에 대한 그래디언트를 계산하는 방법에 대해 설명합니다. 그는 또한 숨겨진 변수 모델에 대해 이야기하고 숨겨진 변수에 대한 분포를 찾기 위한 기대 최대화 알고리즘을 설명합니다. 그런 다음 강의는 신경망을 포함하는 숨겨진 변수 모델인 생성기 신경망으로 이동합니다. 강사는 Generative Adversarial Networks 및 Variational Autoencoder를 사용하여 데이터를 통해 매개변수를 맞추는 방법에 대해 설명합니다. 마지막으로 의사 결정 및 회귀 트리 모델과 순환 신경망 및 Markov 모델과 같은 순차 데이터 및 모델에 대해 강의합니다.

  • 00:15:00 이 섹션에서 연사는 머신 러닝의 귀납적 및 알고리즘 편향에 대해 논의하며 학습 데이터가 시간상 테스트 데이터보다 항상 앞서야 하며 교차 유효성 검사는 워크포워드 교차 유효성 검사를 사용하여 수행되어야 한다고 제안합니다. 그런 다음 연사는 사용자 및 영화 등급을 유일한 데이터 소스로 사용하는 추천 시스템과 이 매트릭스 모델이 사용자와 영화 모두에 대해 매우 유익한 방법에 대해 설명합니다. 마지막으로 발표자는 강화 학습에는 탐색과 착취 간의 절충이 필요하며 드롭아웃이 있는 컨벌루션 신경망은 탐색 대 착취 딜레마를 구성하지 않고 오히려 온라인 하이퍼파라미터 최적화 기술이라고 설명합니다.

  • 00:20:00 이 섹션에서 화자는 복잡한 주제를 이야기할 때 개념은 우리 머리 속의 그래프와 같지만 설명할 때는 순서가 된다고 설명합니다. 논의된 개념 간의 상위 수준 관계를 재구성하는 데 도움이 되도록 화자는 검색 및 모델의 마인드 맵을 만듭니다. 모델은 J by Ganz 및 v AE와 같은 보다 복잡한 모델과 함께 선형 회귀, 선형 분류 및 로지스틱 회귀와 같은 신경망의 특정 인스턴스로 분류됩니다. 연사는 또한 경사 하강이 가장 일반적이고 확률적 경사 하강과 미니 배치 경사 하강이 특정 변형인 검색 방법의 다양한 유형에 대해 논의합니다. 발표자는 미니 배치 경사하강법이 대부분의 시간에 일반적으로 사용되는 것이라고 말합니다. 마지막으로 화자는 피처, 인스턴스, 대상 값으로 분할하는 기본 설정과 개별 인스턴스를 특정 순서로 처리하는 시퀀스 설정 등 데이터를 처리하는 다양한 설정과 방법에 대해 논의합니다.

  • 00:25:00 이 섹션에서 연사는 시퀀스 데이터, 추천 시스템 및 온라인 학습과 같은 기계 학습의 다양한 유형의 데이터 세트 및 작업에 대해 설명합니다. 또한 정보 손실을 방지하기 위해 수동 기능 추출을 수행하지 않고 종단 간 파이프라인을 구축하는 것과 관련된 방법으로 딥 러닝에 대해 이야기합니다. 연사는 일부 "거래 요령"에 대한 팁과 강의에서 논의된 모든 추상 작업 및 모델에 대한 검토를 제공합니다. 마지막으로 연사는 회상, 조합 및 추론의 세 가지 질문 범주를 포함하는 시험 공부를 위한 팁을 제공합니다.

  • 00:30:00 이 섹션에서 강사는 학생들이 다가오는 시험에서 예상할 수 있는 세 가지 유형의 질문인 보존, 조합 및 적용 질문에 대해 설명합니다. 그는 학생들이 미루는 습관이 완벽주의에 의해 발생한다는 것을 깨닫고 작업을 시작하기 위해 실행 가능한 최소한의 약속을 찾는 것과 같이 학생들이 미루는 습관에 대처하는 데 도움이 되는 몇 가지 팁을 제공합니다. 강사는 또한 진행률을 추적하고 작업을 끝없는 작업으로 보지 않도록 진행률 표시줄을 만들 것을 제안합니다. 마지막으로 그는 학생들에게 완벽주의자가 되지 말라고 상기시킨다.

  • 00:35:00 비디오의 이 섹션에서 발표자는 미루는 습관을 극복하고 생산성을 높이는 방법에 대한 팁을 제공합니다. 그가 제안하는 기술 중 하나는 타이머를 25분으로 설정하고 그 시간 동안 극도로 집중하여 작업한 다음 5분간 휴식을 취하는 포모도로 기법입니다. 그는 또한 시험을 위해 강의 내용에 집중하고 모의고사를 사용하여 다가오는 시험에 빠르게 대비할 것을 제안합니다. 전반적으로 연사는 한 번에 완벽을 추구하기보다 목표를 향해 작고 달성 가능한 단계를 밟는 것이 중요하다고 강조합니다.

  • 00:40:00 이 섹션에서는 연사가 기계 학습 개념에 대한 이해를 향상시키기 위한 전략을 공유합니다. 그는 모든 내용을 철저히 읽는 대신 빠른 패스를 통해 지식 격차를 식별한 다음 해당 특정 영역에 집중할 것을 제안합니다. 이 과정을 돕기 위해 그는 학습하는 동안 나중에 설명을 위해 참조할 키워드 목록을 만들 것을 권장합니다. 그는 또한 학생들에게 집중할 주제의 우선 순위를 정하기 위해 자신의 시험 문제를 생각해 내라고 조언하고 자료에 대한 다양한 관점을 얻기 위해 여러 출처에서 읽을 것을 제안합니다. 마지막으로 그는 추가 학습을 위한 종합 리소스로 Google 머신러닝 단기집중과정을 추천합니다.

  • 00:45:00 이 섹션에서 발표자는 기계 학습의 공개 문제, 즉 인과 관계, 구성성 및 일반화에 대해 논의합니다. 상관 관계는 인과 관계를 의미하지 않기 때문에 인과 관계는 현대 기계 학습 방법에서 어려운 문제입니다. 인과관계를 규명하기 위해서는 개입이 필요하며, 이는 실험이 가능한 강화학습 환경을 통해 이루어질 수 있다. 그러나 윤리적 또는 현실적 이유로 실험이 불가능할 경우 배경 지식을 모델에 주입할 수 있습니다. 발표자는 또한 세계에서 가능한 원인을 모델링하기 위해 작은 그래프를 그리는 것에 대해 언급합니다.

  • 00:50:00 이 섹션에서 연사는 인간의 추론을 기계 학습 모델에 통합하는 방법을 탐색하면서 귀납적 편향과 알고리즘 편향에 대해 이야기합니다. 인과 관계를 추론하는 방법과 배경 지식을 사용하여 상관 관계를 추론하는 방법에 대해 논의합니다. 또한 기계 학습의 구성성 및 일반화 문제, 특히 반복 신경망에서 관찰되는 문제에 대해서도 논의합니다. 연사는 기계 학습을 더욱 발전시키기 위해 복합 효과를 이해해야 할 필요성을 언급하며 결론을 내립니다.

  • 00:55:00 이 섹션에서 연사는 기계 학습 모델의 일반화 문제와 훈련 데이터와 약간만 다른 데이터로 테스트할 때 어떻게 무너지는지에 대해 논의합니다. 이에 대한 해결책은 귀납적 편향에 대해 생각하는 데 있습니다. 이는 모델 공간에서 특정 솔루션으로 모델을 편향시키기 위해 모델에 배치된 암시적 또는 명시적 제약을 나타냅니다. 발표자는 다양한 유형의 모델과 그 유도성 편향의 예를 제공하며, 컨볼루션 신경망에서 발견되는 것과 같은 더 강력한 유도성 편향이 모델의 일반화 능력을 향상시킬 수 있는 방법을 강조합니다.

  • 01:00:00 이 섹션에서 연사는 인과성, 구성성 및 일반화 문제를 해결하는 데 도움이 되도록 신경망에 구축할 수 있는 귀납적 편향의 개념에 대해 논의합니다. 배경 지식을 주입하고 구성성을 모델에 명시적으로 구축함으로써 네트워크는 최대 100개의 숫자만 본 경우에도 수백 또는 수천 개의 숫자를 나타내는 방법을 학습할 수 있습니다. 그러나 모델이 더 많이 제한될수록 모델링하지 않은 것에 대해 덜 견고해집니다. 또한 연사는 머신 러닝이 보다 엔드 투 엔드 학습 시스템으로 이동하여 머신 러닝이 시스템 전체에 퍼져 차동 프로그래밍 또는 "소프트웨어 2.0"이라고 하는 것으로 이어질 것이라고 예상합니다.

  • 01:05:00 이 섹션에서 연사는 기계 학습이 프로그래밍 언어의 기본이 될 가능성과 이것이 어떻게 더 크고 예측 가능한 시스템으로 이어질 수 있는지에 대해 논의합니다. 연사는 또한 기계 학습이 글꼴 디자인과 같은 창의적인 예술에 미치는 영향을 탐구하고 기계가 창의성 및 디자인과 같은 기존 인간 프로세스를 향상시키는 지능 증강에 기계 학습이 사용될 수 있다고 제안합니다. 킬러로봇 개발에 대한 고민에 가능한 해결책으로 지능형 인프라 개념도 도입한다.

  • 01:10:00 이 섹션에서 발표자는 일관된 언어를 생성하고 대규모로 가짜 뉴스를 생성할 수 있는 기능이 있는 GPT와 같은 언어 생성기의 잠재적 위험에 대해 논의합니다. 우려되는 점은 이러한 유형의 기술이 개인이 콘텐츠를 조작할 수 있도록 허용함으로써 잠재적으로 국가적 토론과 선거에 영향을 미치면서 상당한 사회적 영향을 미칠 수 있다는 것입니다. 또한 기계 학습 모델이 훈련된 데이터의 편향을 강화할 수 있으므로 알고리즘 편향 문제도 논의되며, 이는 생산에 투입될 때 부정적인 결과를 초래할 수 있습니다.

  • 01:15:00 이 섹션에서 발표자는 기계 학습 알고리즘이 데이터에 이미 존재하는 편향을 제거하는 대신 증폭할 수 있는 알고리즘 편향 문제에 대해 논의합니다. 이로 인해 얼굴 인식 알고리즘이 유색인종을 인식하지 못하거나 CEO 이미지가 주로 남성인 검색 엔진 결과와 같은 예에서 볼 수 있듯이 의도하지 않은 결과와 특정 그룹에 유해한 영향이 발생할 수 있습니다. 연사는 또한 모니터링 시스템의 중요성과 기계 학습 알고리즘에 내재된 편향을 인식하는 것을 강조합니다.

  • 01:20:00 이 섹션에서 연사는 기계 학습 시스템의 알고리즘 편향 문제와 그것이 미칠 수 있는 사회적 영향에 대해 논의합니다. 그는 흑인에 대한 편견이 있는 미국 사법 시스템에서 재범을 예측하는 데 사용되는 기계 학습 시스템의 사례를 설명하여 잘못된 예측으로 이어지고 사회적 편견을 영속화합니다. 그는 이러한 시스템에 사용되는 데이터가 정확하더라도 인종에 기반한 결정을 내리기 위해 기계 학습에 의존하면 인종 프로파일링으로 이어지고 시스템적 편향을 영속화할 수 있다고 주장합니다. 그는 인종 프로파일링이 일반화되고 대중에 의해 받아들여진 네덜란드의 사례를 인용합니다. 연사는 지속적인 편견을 피하고 의사 결정 과정에서 공정성을 촉진하기 위해 기계 학습의 윤리적 사용을 옹호합니다.

  • 01:25:00 이 섹션에서 연사는 인종 프로파일링 문제와 그것이 확률의 오용과 어떤 관련이 있는지에 대해 논의합니다. 그들은 검사의 오류의 개념과 특정 조건이 주어진 결과의 확률이 결과가 주어진 조건의 확률과 같다고 잘못 가정할 수 있는 방법을 설명합니다. 화자는 예측이 정확하더라도 그 예측에 따른 행동이 반드시 정당하거나 도덕적이라는 것을 의미하지는 않는다고 주장합니다. 또한 그들은 인종과 같은 특정 속성이 여전히 다른 속성과 연관되거나 추론될 수 있어 기계 학습 시스템에서 인종적 편견을 완전히 제거하기 어렵다고 지적합니다. 마지막으로, 연사는 개인이 자신의 행동에 대해 책임을 져야 하지만, 자신의 속성을 공유하는 다른 사람의 행동에 대해 불이익을 받도록 허용하는 것은 근본적으로 불공평하며, 이는 미세한 공격이나 상황에서 부당하게 표적이 되는 것과 같은 부정적인 영향을 미칠 수 있다고 지적합니다. 교통정류장처럼.

  • 01:30:00 이 섹션에서 연사는 기계 학습의 잠재적인 사회적 영향과 이러한 시스템의 책임 있는 개발 필요성에 대해 논의합니다. 기계 학습이 많은 결정을 내리면서 결함이 있는 하나의 구성 요소에 대규모로 의존하는 새로운 문제가 발생했으며 중국의 사회 신용 시스템이 그 예입니다. 정치인과 인간은 그러한 시스템의 개발에 괜찮기 때문에 이러한 시스템을 책임감 있게 구축하고 개발하기 위해 이러한 문제에 대해 잘 알고 있는 컴퓨터 과학자, 정보 과학자 및 데이터 과학자가 필요합니다. 이러한 시스템을 구축하는 책임은 해당 분야를 공부하는 학생들에게 있으며 연사는 학생들의 시험과 최종 프로젝트에 행운이 있기를 기원합니다.
 

SAM(Segment Anything Model)을 사용하여 Python에서 이미지 및 비디오 분할 | 욜로v5 | YOLOv8 및 SAM



SAM(Segment Anything Model)을 사용하여 Python에서 이미지 및 비디오 분할 | 욜로v5 | YOLOv8 및 SAM

다양한 작업을 위해 이미지와 동영상에서 객체를 식별하고 추출할 수 있는 AI 모델인 SAM(Segment Anything Model)을 소개하는 영상입니다. SAM은 110억 개의 이미지와 11억 개의 마스크로 구성된 방대한 데이터 세트에 대해 학습되었으며 다양한 분할 작업에서 강력한 성능을 발휘합니다. 이 비디오는 필요한 패키지를 설치하고, 사전 학습된 모델 체크포인트를 다운로드하고, Python을 사용하여 이미지 및 비디오에서 분할을 수행하는 방법을 포함하여 로컬 시스템에서 SAM을 사용하기 위한 단계별 지침을 제공합니다. 이 비디오는 또한 YOLOv5 또는 YOLOv8과 함께 SAM을 사용하여 관심 객체 주위에 경계 상자를 만드는 방법을 보여줍니다. SAM은 애니메이션에도 잠재적으로 응용할 수 있습니다.

  • 00:00:00 이 섹션에서는 다양한 작업을 위해 이미지와 비디오에서 개체를 식별하고 추출할 수 있는 Meta에서 최근 출시된 AI 모델인 SAM(Segment Anything Model)을 소개합니다. SAM은 110억 개의 이미지와 11억 개의 마스크에 대해 훈련되었으며 다양한 분할 작업에 대한 강력한 제로 샷 일반화를 가지고 있습니다. 비디오는 사용자가 이미지를 업로드하고 전체 이미지에서 분할을 수행하거나 각 개체를 개별적으로 절단할 수 있는 데모를 통해 SAM을 사용하는 방법을 보여줍니다. 사용자는 경계 상자를 그리고 마스크를 추가하고 다중 마스킹을 수행할 수도 있습니다. SAM은 애니메이션에도 잠재적으로 응용할 수 있습니다. 비디오는 또한 SAM의 아키텍처, 데이터 세트 가용성 및 자주 묻는 질문에 대한 추가 정보를 제공합니다.

  • 00:05:00 비디오의 이 섹션에서 발표자는 SAM(Segment Anything Model)을 사용하여 이미지의 여러 개체에 대한 다중 마스크를 만드는 방법을 시연합니다. SAM은 1,100만 개의 이미지와 11억 개의 마스크로 구성된 데이터 세트에 대해 교육을 받았으며 다양한 세분화 작업에서 강력한 성능을 발휘합니다. 발표자는 이미지를 선택하고 전체 이미지에서 분할을 실행한 다음 개별 개체를 잘라내는 방법을 보여줍니다. 또한 발표자는 개체 주위에 경계 상자를 그리는 방법과 결과 데이터를 다운로드하고 배포하는 방법을 보여줍니다. 비디오는 YOLOv5 및 YOLOv8을 포함하여 SAM을 설치하고 Python에서 사용하는 방법에 대한 정보로 끝납니다.

  • 00:10:00 비디오의 이 섹션에서 발표자는 GPU를 보유하고 CUDA를 지원하는 Torch 및 Dodge Vision과 같은 필수 패키지 설치를 포함하여 로컬 시스템에서 세그먼트 무엇이든 모델을 실행하기 위한 요구 사항을 설명합니다. Segment Anything Model 리포지토리를 복제하고 pip를 사용하여 필요한 모든 종속성을 설치하는 방법을 보여줍니다. 또한 이 비디오는 분할 모델을 ONNX 형식으로 변환하는 방법과 세 가지 다른 백본 크기에 대한 사전 훈련된 모델 검사점을 다운로드하는 방법을 다룹니다. 그런 다음 발표자는 모델을 사용하여 이미지와 비디오를 분할하는 방법을 보여줍니다. 비디오에는 각 작업에 대한 자세한 단계별 지침도 포함되어 있어 보는 사람이 쉽게 따라할 수 있습니다.

  • 00:15:00 비디오의 이 섹션에서 발표자는 먼저 Matplotlib를 포함하여 Google 앱 노트북에 입력 및 출력 이미지를 표시하는 데 필요한 모든 라이브러리를 가져옵니다. 그런 다음 드라이브에서 샘플 이미지를 다운로드하고 건물을 배경으로 걷고 있는 여러 사람의 예시 이미지를 보여줍니다. 다음으로 대시 에지가 있는 사전 훈련된 모델 체크포인트를 Google 앱 노트북에 로드하고 세그먼트 모델 자동 마스크 생성기를 이미지에 적용하여 세그먼트화합니다. 프리젠터는 SMAM이 이미지를 스캔하고 제공된 포인트를 기준으로 분할하는 데 사용하는 이미지의 면당 포인트를 제공합니다. 0.9의 예측 IOT 임계값은 세분화의 정확도를 높이기 위해 설정됩니다.

  • 00:20:00 비디오의 이 섹션에서 발표자는 SAM(Segment Anything Model)을 사용하여 Python을 사용하여 이미지 및 비디오에서 개체 분할을 수행하는 방법을 시연합니다. IU 일정을 조정하여 정확도를 높이고 출력의 정크 양을 줄이는 방법을 보여줍니다. 분할 모델을 샘플 이미지에 적용하고 사람, 건물 및 나무를 정확하게 분할하는 방법을 보여줍니다. 그런 다음 동일한 모델을 사용하여 메타 세분화 패키지를 설치하고 Google 드라이브에서 샘플 동영상을 다운로드하여 샘플 동영상을 분류합니다. 그런 다음 발표자는 GitHub 리포지토리에서 코드를 복사하고 비디오에 적용하여 비디오에서 SAM을 효과적으로 구현합니다.

  • 00:25:00 이 섹션에서 발표자는 사용자가 모델 이름을 정의하고 구현하려는 비디오를 호출할 수 있도록 백본 크기가 다른 세 가지 모델이 포함된 SAM(Segment Anything Model) 저장소에 대해 설명합니다. 그런 다음 화자는 기존 패키지 및 샘플 이미지를 사용하여 SAM을 YOLOv5 또는 YOLOv8과 통합하는 데 필요한 코드를 실행합니다. 발표자는 출력 노이즈를 제거하기 위해 색상 코드를 사용하여 SAM이 건물, 나무 및 자동차에 대한 분할을 수행하는 데 어떻게 사용되는지 보여줍니다. 발표자는 또한 다양한 세분화 모델 버전에 대해 논의하여 각 모델의 백본 크기가 다르다는 것을 나타냅니다. 데모는 가장 작은 YOLOv8 Nano 모델의 정확성과 속도를 강조합니다.

  • 00:30:00 이 섹션에서 발표자는 YOLOv8과 함께 SAM(Segment Anything Model)을 사용하여 분할을 수행하고 관심 객체 주위에 경계 상자를 만드는 방법을 보여줍니다. 그들은 사람을 둘러싸고 이미지를 분할하는 경계 상자를 보여줌으로써 모델의 기능을 보여줍니다. 연사는 YOLOv8과 SAM의 통합을 강조하고 시청자에게 작별 인사를 하면서 비디오 자습서를 마무리합니다.
 

YOLOv8 과정 - YOLOv8 및 Flask를 사용한 실시간 객체 감지 웹 애플리케이션 - 웹캠/IP 카메라


YOLOv8 과정 - YOLOv8 및 Flask를 사용한 실시간 객체 감지 웹 애플리케이션 - 웹캠/IP 카메라

YOLOv8 과정은 YOLOv8 및 Flask를 사용하여 실시간 개체 감지 웹 애플리케이션을 만드는 과정을 안내하는 일련의 자습서입니다. 자습서에서는 Python 및 PyCharm과 같은 필수 소프트웨어 설치, 가상 환경 만들기, 패키지 설치, 이미지 및 웹캠에서 개체 감지 테스트를 다룹니다. 이 자습서에서는 출력을 텐서에서 정수로 변환하고, 감지된 개체에 레이블을 지정하고, 감지와 함께 출력 비디오를 저장하는 방법도 다룹니다. 시청자는 YOLOv8을 Flask와 통합하는 방법과 비디오 및 라이브 웹캠 피드 모두에서 실시간 객체 감지 웹 애플리케이션을 실행하는 방법을 보여줍니다.

비디오의 두 번째 부분에서 발표자는 라이브 웹캠 피드 및 비디오에서 개체 감지를 위해 Flask 및 YOLOv8을 사용하여 웹 애플리케이션을 만드는 방법을 시연하고 개인 보호 장비 감지를 위한 사용자 지정 모델의 교육 및 추론을 보여줍니다. 웹 앱에는 각 페이지에 대한 CSS 스타일이 있는 홈 페이지, 비디오 페이지 및 라이브 웹캠 피드 페이지가 있으며 발표자는 프로젝트에 사용된 HTML 및 Flask 파일을 살펴봅니다. 이 비디오는 데이터 세트 가져오기, YOLOv8 모델 훈련을 위한 준비, 모델 훈련, 결과 분석 및 데모 비디오에서 모델 테스트 프로세스를 보여줍니다. 전반적으로 비디오는 실시간 객체 감지 웹 애플리케이션을 개발하고 테스트하기 위한 포괄적인 자습서를 제공합니다.

발표자는 개인 보호 장비(PPE) 데이터 세트에서 학습된 YOLOv8 모델을 사용하는 웹 애플리케이션의 변경 사항에 대해서도 설명합니다. 변경 사항에는 클래스 이름을 기반으로 경계 상자 및 레이블 사각형에 다른 색상을 할당하도록 코드를 수정하고 경계 상자 및 사각형이 표시되도록 신뢰도 점수를 0.5 이상으로 설정하는 것이 포함됩니다. 발표자는 비디오 및 라이브 웹캠 피드에서 PPE 항목을 성공적으로 감지하는 것을 보여주며 과정의 끝을 표시합니다.

  • 00:00:00 다음 단계는 Python 및 PyCharm Community Edition을 다운로드하여 설치하는 것입니다. Python의 최신 릴리스는 오류 및 버그 수정이 있을 수 있으므로 권장되지 않습니다. 권장되는 Python 3.8 버전의 최신 릴리스를 다운로드할 수 있습니다. PyCharm Professional 버전은 30일 무료 평가판을 제공하지만 Community Edition은 튜토리얼에 충분합니다. 필요한 소프트웨어를 다운로드하고 설치했으면 원하는 이름으로 빈 폴더를 만든 다음 PyCharm에서 열어 프로젝트를 시작할 수 있습니다.

  • 00:05:00 YOLOv8 집중 과정의 이 섹션에서 강사는 Pycharm에서 새 가상 환경을 만들고 프로젝트에 필요한 패키지를 설치하는 방법을 시연합니다. 강사는 패키지 관리자 창을 통해 새 프로젝트를 만들고 기본 인터프리터를 선택하고 패키지를 설치하는 방법을 보여줍니다. 또한 명령줄에서 설치하려는 모든 패키지를 기록하기 위해 requirements.txt 파일을 만드는 방법도 보여줍니다. 이 비디오는 YOLOv8을 사용하여 물체 감지를 위한 ultralytics 패키지 설치의 중요성을 강조합니다.

  • 00:10:00 이 섹션에서 강사는 자체 패키지가 있는 유일한 YOLO 버전인 YOLOv8 설치 방법을 보여줍니다. pip install ultralytics를 사용하여 YOLOv8을 설치할 수 있으며 탐지 또는 교육 스크립트를 변경해야 하는 경우 리포지토리를 복제할 수 있습니다. 그런 다음 강사는 YOLOv8을 사용하여 패키지 및 YOLOv8 모델을 가져오고 사전 훈련된 가중치 파일을 지정하고 입력 이미지 경로를 전달하여 이미지의 개체를 감지합니다. 결과는 이미지에서 감지된 개체를 보여줍니다.

  • 00:15:00 이 섹션에서 비디오는 새 이미지를 이미지 폴더에 추가하고 YOLO 테스트 스크립트를 실행하여 새 이미지에서 YOLOv8 모델을 테스트하는 방법을 보여줍니다. cv2 라이브러리를 가져오고 지연을 추가한 후 모델은 오토바이와 자동차를 정확하게 감지하는 매우 인상적인 결과를 생성합니다. 이 비디오는 또한 다른 YOLO 모델을 사용할 때 정확도 대 속도 문제를 다루고 훨씬 더 정확한 결과를 위해 YOLOv8x 모델을 사용할 것을 제안합니다. 그런 다음 비디오는 새 디렉토리를 사용하여 웹캠에서 YOLOv8 모델을 테스트하는 것으로 이동합니다.

  • 00:20:00 비디오의 이 섹션에서 발표자는 "YOLOv8_webcam.py"라는 새 파일을 만듭니다. 그들은 YOLOv8, CB2 및 수학을 가져오고 "cap"을 "CV2.videoCapture(0)"와 동일하게 설정하여 웹캠에서 YOLOv8을 실행할 수 있습니다. 각각 "cap.get(5)" 및 "cap.get(4)"를 호출하여 프레임 속도와 높이를 계산합니다. 그들은 출력 비디오를 탐지와 함께 저장하고 싶다고 설명하므로 CB2.VideoWriter()를 사용하여 출력 파일 이름을 "output.avi"로 설정합니다. 프레임 속도와 높이를 함수에 전달한 다음 "modern"을 "YOLOv8"과 동일하게 설정합니다. 그런 다음 발표자는 이미지에서 "CV2.imshow('image', image)" 및 "CV2.waitKey(1)"를 호출하여 웹캠이 제대로 작동하는지 테스트합니다.

  • 00:25:00 YOLOv8 과정의 이 섹션에서 발표자는 웹캠을 테스트하고 출력 비디오가 제대로 저장되었는지 확인합니다. 그런 다음 그는 YOLOv8 모델을 사용하여 라이브 웹 피드에서 탐지를 실행하고 결과를 'results'라는 변수에 저장합니다. 코드는 각각의 개별 경계 상자를 살펴보고 성능을 확인합니다. 각 경계 상자에는 X1, Y1, X2 및 Y2의 4개 좌표가 있으며 추가 처리 및 감지된 개체 주변의 경계 상자 생성을 위해 텐서에서 정수 형식으로 변환됩니다.

  • 00:30:00 비디오의 이 섹션에서 발표자는 출력이 텐서에서 정수로 변환되는 방법과 cv2.rectangle을 사용하여 감지된 각 개체 주위에 사각형이 생성되는 방법을 다룹니다. 경계 상자의 색상과 두께는 감지된 각 객체의 시작점과 끝점과 함께 정의됩니다. 응용 프로그램의 출력은 경계 상자가 감지된 개체 주위에 완벽하게 잘 그려지고 있음을 보여줍니다. 그러나 발표자는 감지된 각 개체에 대해 레이블과 신뢰도 점수도 표시되어야 한다고 언급합니다. 신뢰 점수는 현재 텐서 형태로 표시되지만 발표자는 mat.c를 사용하여 이를 정수로 변환할 계획입니다.

  • 00:35:00 비디오 자습서의 이 섹션에서 강사는 시청자에게 감지된 개체에 신뢰 점수를 추가하고 정수로 변환하고 클래스 ID에 따라 레이블을 지정하는 방법을 보여줍니다. 클래스 ID는 개체 유형에 따라 결정되며 0은 사람, 1은 자전거, 2는 자동차입니다. 또한 강사는 레이블 주위에 사각형을 만들고 출력 감지를 output.avi라는 파일에 저장하는 방법을 보여줍니다. 시청자는 프레임별로 실시간 감지를 볼 수 있으며 강사는 화면을 클릭하여 프로세스를 중지하는 방법을 보여줍니다. 강사는 또한 출력 비디오 파일을 표시하고 결과가 예상한 대로인지 확인합니다. 마지막으로 강사는 다음 튜토리얼에서 Windows에서 YOLOv8을 실행하고 결과를 공유할 것이라고 발표합니다.

  • 00:40:00 YOLOv8 과정의 이 섹션에서 제작자는 YOLOv8 사전 훈련된 가중치를 사용하여 샘플 비디오에서 물체 감지를 수행하는 방법을 시연합니다. 목표는 COCO 데이터 세트의 일부인 자전거와 사람을 모두 감지하는 것입니다. 제작자는 스크립트를 실행하고 폴더를 지정된 비디오 폴더로 리디렉션한 다음 자전거, 사람 및 신호등과 같은 기타 물체를 성공적으로 감지하는 방법을 보여줍니다. 그런 다음 생성자는 탐지가 있는 출력 비디오가 선택한 폴더에 저장되어 탐지된 개체 주변의 경계 상자를 레이블 및 신뢰도 점수와 함께 표시함을 보여줍니다. 모든 코드를 포함하도록 함수 비디오 감지가 생성되고 last app dot Pi라는 파일이 생성됩니다.

  • 00:45:00 비디오의 이 섹션에서 발표자는 YOLOv8을 Flask와 통합하여 실시간 개체 감지 웹 애플리케이션을 만드는 데 필요한 단계에 대해 설명합니다. 첫 번째 단계는 pip install을 사용하여 완료되는 Flask를 설치하는 것입니다. 다음으로 스피커는 필요한 라이브러리를 가져오고 Flask를 초기화합니다. 그런 다음 입력 비디오 파일 경로를 가져오고 감지된 개체 주위에 경계 상자가 있는 출력을 생성하는 프레임 생성이라는 함수를 만듭니다. 마지막으로 발표자는 이미지를 바이트로 인코딩하고 삭제 키보드를 사용하여 개별 프레임을 비디오로 변환하는 방법에 대해 설명합니다. 최종 결과는 감지된 개체, 레이블 및 신뢰도 점수 주위에 경계 상자가 있는 개별 프레임입니다.

  • 00:50:00 이 섹션에서는 동영상 제작자가 YOLOv8을 Flask와 통합하여 실시간 객체 감지 웹 애플리케이션을 만드는 방법을 설명합니다. 이 비디오는 프레임을 인코딩하고 이미지를 바이트로 변환한 다음 감지 및 후속 프레임 표시를 위해 개별 프레임을 반복하는 방법을 보여줍니다. 비디오는 수단 유형을 사용하여 시각적 프레임을 교체하는 것을 보여주고 콘텐츠 유형은 후속 프레임을 표시하는 데 활용됩니다. 비디오에는 비디오 파일이 감지를 위한 입력으로 전달되어 감지된 개체 주위에 경계 상자가 생기는 데모가 포함되어 있습니다. 이 시나리오에서는 사람, 자전거 및 신호등입니다. 비디오는 다음 자습서에서 라이브 웹캠 피드에 대한 감지를 다루어 Fly Fast API를 생성한다고 설명하면서 끝납니다.

  • 00:55:00 이 섹션에서 발표자는 라이브 웹캠 피드에서 YOLOv8 실시간 개체 감지 웹 애플리케이션을 실행하는 방법을 시연합니다. 스크립트에서 비디오 경로를 0으로 변경하면 라이브 웹캠 피드에서 프로그램을 실행할 수 있습니다. 새로운 URL이 생성되고 Flask 애플리케이션에 연결되어 라이브 웹캠 피드의 실시간 개체 감지가 가능합니다. 발표자는 프로그램이 라이브 피드에서 사람, 자전거, 신호등과 같은 물체를 정확하게 감지할 수 있음을 보여줍니다. 또한 비디오 경로는 비디오 URL로 다시 변경되며 프로그램은 비디오에서 개체를 감지하는 기능도 보여줍니다.

  • 01:00:00 이 섹션에서 비디오 자습서는 프런트 엔드 디자인에 HTML 및 CSS를 사용하고 백엔드에 Flask를 사용하여 완전한 HTML 웹 페이지를 만드는 데 중점을 둡니다. 웹 앱은 홈 페이지, 비디오 페이지 및 라이브 웹캠 피드 페이지의 세 가지 페이지로 구성됩니다. 홈페이지에는 다양한 프로젝트의 샘플 결과가 포함된 머리글, 콘텐츠 및 바닥글이 있습니다. 비디오 페이지에서 사용자는 비디오를 업로드하고 해당 비디오에서 YOLOv8 탐지를 실행할 수 있습니다. 라이브 웹캠 피드 페이지를 통해 사용자는 라이브 웹캠 피드에서 탐지를 수행할 수 있습니다. 비디오는 또한 Flask 앱 도트 파일 파일과 세 개의 HTML 페이지를 보여줍니다.

  • 01:05:00 이 섹션에서 비디오 자습서는 사용자가 Flask 형식을 사용하여 개체 감지 모델에 비디오 파일을 업로드하는 방법을 설명합니다. 튜토리얼에서는 유효성 검사기를 사용하여 사용자가 올바른 형식(MP4 또는 .avi)으로 비디오 파일을 업로드하는지 확인합니다. 업로드된 동영상 파일의 파일 경로는 클래스 형식을 사용하여 파일 변수에 저장됩니다. 이 자습서에서는 입력 비디오 파일에서 개체를 감지하는 데 사용되는 프레임 생성 기능도 소개합니다. 입력 비디오 파일은 정적 파일 폴더에 저장되며 사용자는 제출 버튼을 클릭하여 탐지를 위해 비디오 파일을 제출할 수 있습니다.

  • 01:10:00 YOLOv8 과정의 이 섹션에서는 YOLO Dash 비디오 파일에 있는 감지 기능에 중점을 둡니다. 비디오 축소 기능은 우리에게 방향을 제공하고 개체 감지를 통해 레이블과 신뢰도 점수가 있는 감지된 개체 주변에 출력 경계 상자가 있습니다. 현재 프레임은 Flask의 입력 이미지 또는 프레임에서 요구하는 대로 바이트로 변환됩니다. 프레임 생성 웹 기능은 앱의 웹캠에 액세스하거나 리디렉션하려고 할 때 호출되며 세션 저장소에서 입력 비디오 파일을 제거하여 이전 비디오가 아닌 새 비디오 또는 입력 파일에서 감지가 발생하도록 허용합니다. 그들. 세션 저장 변수에 동영상 파일 경로가 저장되어 업로드 파일 양식 인스턴스가 생성됩니다. 새 비디오에서 감지가 발생하도록 이후에 세션 저장소가 지워져 앱이 이전 비디오 또는 입력 파일에서 감지하지 못하도록 합니다.

  • 01:15:00 이 섹션에서는 화자가 Flask 및 Webcam/IP 카메라를 사용하여 웹 애플리케이션에서 실시간 객체 감지를 위한 YOLOv8 과정에 사용된 코드 및 HTML 파일을 설명합니다. 발표자는 세션 저장소에 비디오 부분을 저장하고 비디오에서 탐지를 수행하기 위해 비디오 경로를 호출하는 방법을 보여줍니다. 또한 프로젝트에 대한 Flask 앱 도트 Pi 파일도 표시합니다. HTML 파일은 언어, 페이지 제목, 본문 및 배경색, 글꼴 패밀리, 텍스트 색상, 높이 및 기타 요소와 같은 속성이 있는 헤더로 구성됩니다. 또한 화자는 둥근 사각형 모양을 만들 때 테두리 반경의 목적을 설명합니다.

  • 01:20:00 이 섹션에서 발표자는 자신이 만든 웹 애플리케이션의 기본 페이지를 시연합니다. 그들은 사용자를 비디오 피드 페이지로 안내하는 대시 프론트 페이지 URL을 표시하는 것으로 시작하여 비디오를 업로드하고 물체 감지가 발생할 수 있습니다. 그런 다음 실시간 웹캠 피드에서 감지가 발생하는 UI.html 페이지를 표시합니다. 또한 저장하고 HTML에 전달한 세 개의 이미지를 보여주는 샘플 결과 페이지를 보여줍니다. 마지막으로 클릭하면 사용자를 YouTube 채널로 리디렉션하는 바닥글을 표시합니다. 시연 내내 발표자는 각 페이지에 사용한 CSS 스타일을 보여줍니다.

  • 01:25:00 이 섹션에서 발표자는 라이브 웹캠 피드 및 비디오와 함께 YOLOv8 및 Flask를 사용하는 실시간 객체 감지 웹 애플리케이션을 시연합니다. CSS 스타일이 웹 페이지에 추가되고 화자는 Python 클래스 캡 파일을 실행하여 비디오 및 라이브 웹캠 피드에서 탐지를 수행합니다. 사용자는 비디오 파일을 입력하여 탐지를 얻을 수도 있습니다. YOLOv8 모델이 사람, 자전거, 신호등 등과 같은 물체를 감지하고 레이블 및 신뢰도 점수로 경계 상자를 만들 수 있으므로 결과가 인상적입니다. 연사는 라이브 웹캠 피드의 감지도 정확하게 작동함을 보여주면서 결론을 내립니다.

  • 01:30:00 비디오의 이 섹션에서 발표자는 YOLOv8을 사용하여 비디오 및 라이브 웹캠 피드 모두에서 개체를 감지할 수 있는 Flask 웹 애플리케이션을 선보입니다. 이 앱에는 홈 페이지, 모든 입력 비디오에서 탐지를 수행할 수 있는 비디오 페이지 및 라이브 웹캠 피드 페이지가 있습니다. 그런 다음 발표자는 Roboflow에서 사용할 수 있는 데이터 세트를 사용하여 개인 보호 장비(PPE) 감지에 YOLOv8을 사용하는 방법을 시연합니다. 이 데이터 세트는 7가지 클래스의 3235개 이미지로 구성됩니다. 프리젠터는 YOLOv8에 의해 감지되는 실제 개체를 반영하도록 클래스 이름을 변경하고 불균형 클래스 분포를 포함하는 데이터 세트 통계를 표시합니다. 데이터 세트에 사용된 분할 비율은 70-20-10입니다. 마지막으로 발표자는 YOLOv8 모델을 Collab 노트북으로 가져오는 방법을 시연합니다.

  • 01:35:00 YOLOv8 과정의 이 섹션에서 강사는 필요한 라이브러리를 가져오고 GPU에 대한 액세스를 확인하는 방법을 설명합니다. OS 라이브러리는 다른 파일을 탐색하는 데 사용되며 이미지 라이브러리는 Google Colab 노트북에서 입력/출력 이미지를 표시하는 데 사용됩니다. 그런 다음 PPE 데이터 감지 데이터 세트를 Roboflow에서 가져와 새로 생성된 '데이터 세트' 폴더로 다운로드합니다. YOLOv8 모델은 pip install ultralytics를 사용하여 설치되고 그 기능은 import ultralytics를 사용하여 설치 및 작동에 대해 확인됩니다.

  • 01:40:00 비디오의 이 섹션에서 발표자는 YOLOv8 모델 교육을 위해 PPE 탐지 데이터 세트를 다운로드하고 준비하는 방법을 보여줍니다. 데이터 세트는 테스트 및 유효성 검사 세트와 각 개체의 클래스 이름이 포함된 data.yml 파일로 구성됩니다. 폴더를 다운로드하고 이름을 바꾼 후 발표자는 명령줄 인터페이스를 사용하여 모델의 교육, 유효성 검사 및 테스트를 로컬로 구현합니다. 교육을 완료하는 데 약 3시간이 소요되며 발표자는 최고의 가중치 파일과 90번째 작업 마지막 가중치를 포함한 교육 결과를 보여줍니다. 이 모델은 PPE 개체의 7개 클래스에 대해 훈련되었습니다.

  • 01:45:00 이 섹션에서는 각 클래스에 대한 평균 평균 정밀도 및 혼동 행렬을 포함하여 YOLOv8 모델 학습 결과를 분석합니다. 교육 및 검증 손실도 검사되며 손실 값은 교육 프로세스 전반에 걸쳐 지속적으로 감소합니다. 유효성 검사 배치에 대한 모델 예측도 표시되어 모델이 잘 작동하고 있음을 나타냅니다. 모델에 가장 적합한 가중치는 사용자 정의 주문을 검증하는 데 사용되며 평균 평균 정밀도 점수는 강하게 유지됩니다. 마지막으로 사용자 지정 모델을 사용하여 레이블을 감지하기 위해 이미지에서 추론이 실행됩니다. 전반적으로 YOLOv8 모델은 실시간 객체 감지에서 다양한 클래스를 감지하는 데 잘 수행되는 것으로 보입니다.

  • 01:50:00 이 섹션에서 비디오 제작자는 이미지 및 데모 비디오의 테스트 데이터 세트에서 YOLOv8 모델을 실행하는 방법을 시연합니다. 테스트 데이터 세트 결과는 "예측" 파일에 저장되며 작성자는 "ipython.display" 패키지를 사용하여 처음 5개의 이미지에 대한 출력을 표시합니다. 결과는 모델이 보호 보드, 재킷, 장갑, 방진 마스크, 보호 시녀 및 헬멧과 같은 물체를 올바르게 감지할 수 있음을 보여줍니다. 그런 다음 제작자는 데모 비디오를 다운로드하고 모델을 통해 전달하여 모델이 보호 재킷과 시녀를 감지할 수 있음을 보여주는 출력을 표시합니다. 비디오 제작자는 시간이 덜 걸리기 때문에 교육 및 예측에 GPU를 사용하는 이점도 언급합니다.

  • 01:55:00 이 섹션에서 발표자는 데모 비디오에서 YOLOv8 모델을 테스트하여 성능을 확인합니다. 모델은 보호용 헬멧과 재킷을 감지할 수 있지만 장갑은 감지할 수 없습니다. 발표자는 출력 데모 비디오를 다운로드하고 각 비디오에서 모델이 어떻게 수행되는지 보여줍니다. 이 모델은 테스트한 모든 데모 비디오에서 보호용 시녀와 재킷을 감지할 수 있습니다. 그런 다음 발표자는 개인 보호 장비에서 훈련된 모델에 가장 적합한 가중치 파일을 다운로드하고 이를 실시간 물체 감지 웹 애플리케이션을 위해 Flask와 통합하는 방법에 대해 논의합니다.

  • 02:00:00 이 섹션에서 발표자는 PPE(개인 보호 장비) 데이터 세트에서 훈련된 Yellow V8 모델을 사용하는 웹 애플리케이션의 코드 변경 사항에 대해 설명합니다. PPE 데이터 세트에는 7개의 다른 클래스가 있으며 해당 이름이 나열되어 있습니다. 최상의 가중치 파일은 80개의 서로 다른 클래스로 구성된 Coco 데이터 세트에서 ppe.pt로 이름이 변경되었습니다. 프레젠터는 클래스 이름에 따라 경계 상자와 레이블 사각형에 다른 색상을 할당하는 기능을 추가했습니다. 발표자는 신뢰 점수에 대한 제한을 설정했으며 점수가 0.5 이상인 경우에만 경계 상자와 사각형이 표시된다고 언급했습니다. Flask app.py 및 HTML 파일은 동일하게 유지됩니다. 마지막으로 발표자는 PPE 데이터세트와 웹캠에서 비디오 감지 결과를 보여줍니다. 응용 프로그램은 비디오에서 PPE 항목을 성공적으로 감지할 수 있습니다.

  • 02:05:00 이 섹션에서 발표자는 라이브 웹캠 피드를 사용하여 실시간으로 YOLOv8 모델의 성공적인 감지 기능을 시연합니다. 이 모델은 보호용 헬멧과 방진 마스크를 착용한 사람을 정확하게 감지할 수 있으며 장갑과 방패가 없는 것을 무시합니다. 결과는 만족스러운 것으로 간주되고 과정의 끝을 표시합니다.