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

 

메가-R3. 게임, 미니맥스, 알파-베타



메가-R3. 게임, 미니맥스, 알파-베타

이 비디오는 일반 미니맥스, 알파-베타 추가, 알파-베타 가지치기, 정적 평가, 점진적 심화 및 노드 재정렬을 포함하여 게임 이론 및 미니맥스 알고리즘과 관련된 다양한 주제를 다룹니다. 강사는 예제를 사용하여 이러한 개념에 대한 설명과 시연을 제공하고 청중에게 게임 트리의 여러 노드에서 값을 결정하는 데 참여하도록 요청합니다. 영상은 휴리스틱 기능의 잠재적 결함에 대한 토론과 다가오는 퀴즈에 대한 조언으로 끝납니다.

  • 00:00:00 이 섹션에서 강사는 게임의 개념을 소개하고 게임의 다양한 구성 요소에 중점을 둘 것이라고 언급합니다. 그런 다음 정규 미니맥스 알고리즘과 게임 트리의 특정 지점에서 미니맥스 값을 알아내는 방법을 설명합니다. 예제 게임 트리를 사용하여 강사는 알고리즘을 통해 청중을 안내하고 다양한 노드에서 최소값을 결정합니다. 백설공주 원칙과 할아버지 조항도 간략하게 언급됩니다.

  • 00:05:00 비디오의 이 섹션에서 발표자는 게임 이론의 미니맥스 공식에 대한 알파 및 베타 추가를 설명합니다. 그는 이러한 숫자의 추가를 각 측이 최악의 상황에 대비하면서 가능한 최선의 결과를 찾으려고 노력했던 냉전과 비교합니다. 알파와 베타는 양쪽에 안전 장치 또는 최악의 시나리오를 제공하는 숫자를 나타냅니다. 화자는 알파-베타 검색이 미니맥스보다 더 복잡하고 어떤 사람들에게는 도전이 될 수 있다고 제안합니다. 그러나 그는 또한 알파-베타 검색을 마스터하면 미니맥스 문제를 이해하고 해결하는 데 도움이 될 수 있다고 언급합니다.

  • 00:10:00 이 섹션에서 강사는 각각 Maximizer 및 Minimizer에 대한 핵 옵션으로 알파 및 베타의 개념을 설명합니다. 알파를 음수 무한대로 설정하고 베타를 양수 무한대로 설정하면 최대화 장치와 최소화 장치가 매번 보이는 첫 번째 경로를 확인하도록 하는 안전 장치가 생성됩니다. 알고리즘이 진행됨에 따라 게임의 잠재적인 결과에 따라 알파와 베타의 값이 변경됩니다. 베타가 알파보다 낮아지거나 알파가 베타보다 낮아지면 알고리즘은 분기를 가지치기하여 플레이어 중 한 명이 더 이상 해당 분기를 탐색하기를 원하지 않는다는 신호를 보냅니다. 강사는 또한 게임 트리의 다른 노드에서 알파 및 베타 숫자를 그리는 다른 방법이 있음을 언급합니다.

  • 00:15:00 이 섹션에서는 화자가 알파-베타 알고리즘에 사용되는 백설공주 원리를 설명합니다. 부모노드에서 알파,베타 값을 물려받고 부모노드로 올라갈때 더 좋은 값을 가져가는 것이 원칙입니다. 기본 알파 및 베타 값도 논의되었으며, 알파는 음의 무한대이고 베타는 양의 무한대입니다. 그런 다음 발표자는 알파-베타 가지치기의 예를 보여주고 청중에게 검색 트리의 각 노드에서 알파 및 베타 값을 결정하도록 요청합니다. 알파-베타 알고리즘이 상위 노드에서 상속된 값을 기반으로 특정 노드 검색을 피할 수 있음을 강조하기 위해 트릭 질문이 던져집니다.

  • 00:20:00 이 섹션에서 발표자는 의사 결정 트리에서 더 나은 결과로 이어지지 않을 것 같은 가지를 잘라내는 알파-베타 가지치기의 원리를 설명합니다. 화자는 적의 핵 공격 옵션과 관련된 예를 제시하고 알파-베타 가지치기 원칙에 따라 가지치기할 선택을 결정합니다. 또한 화자는 가지를 자를 수 있는지 여부를 결정하기 위한 온전성 테스트와 결정 트리 게임에서 무한대로 시작하는 최소화기와 달리 분기를 건너뛸지 여부를 결정하는 최대화기의 기능을 제공합니다.

  • 00:25:00 비디오의 이 섹션에서 발표자는 게임 트리의 여러 노드에서 값을 분석하여 미니맥스 알고리즘에서 알파 및 베타 값을 결정하는 프로세스에 대해 설명합니다. 화자는 최소화 노드를 만나면 베타 값이 양의 무한대로 설정되고 최대화 노드를 만나면 알파 값이 음의 무한대로 설정된다고 설명합니다. 그런 다음 발표자는 게임 트리의 특정 값을 사용하여 알고리즘이 작동하는 방식과 알파 값이 베타 값보다 크거나 같을 때 노드를 잘라내는 방법을 보여줍니다. 마지막으로 발표자는 점진적 심화를 사용하여 게임 트리에서 노드가 평가되는 순서에 대해 논의합니다.

  • 00:30:00 이 섹션에서 발표자는 본질적으로 리프 노드에 숫자 값을 할당하는 기능인 정적 평가의 개념을 설명합니다. 정적 평가기는 이러한 값을 잎의 맨 아래에 할당하고 평가 순서는 잎만을 참조합니다. 발표자는 또한 모든 노드가 조부모(알파 또는 베타)에서 동일한 유형의 값을 가져오는 것으로 시작하는 백설공주 원리를 설명합니다. 최대화 프로그램은 어떤 경로를 택할지 제어할 수 없습니다. 추구할 경로를 선택하는 것은 최소화기입니다. 정적 평가의 개념은 특정 경로를 제거할지 여부를 결정하는 데 도움이 되므로 알파-베타 가지치기 기술에 매우 중요합니다. 본질적으로 정적 평가는 알고리즘의 효율성에 기여하여 몇 가지 정적 평가를 제거하여 알파-베타 가지치기를 통해 더 많은 시간을 절약할 수 있습니다.

  • 00:35:00 이 섹션에서 발표자는 체스와 같은 게임에서 보드 위치를 평가하는 데 사용되는 정적 평가의 개념을 설명합니다. 평가에는 오랜 시간이 걸리며 게임 상태에 대한 신중한 분석이 필요합니다. 검색 트리의 리프 노드는 게임 상태 분석을 기반으로 한 값의 휴리스틱 추측이기 때문에 정적이라고 합니다. 발표자는 또한 깊이가 두 수준에 불과한 트리에서 점진적 심화의 개념을 소개하고 알파-베타가 가능한 한 많이 가지치기할 수 있도록 트리를 재정렬할 수 있는 방법을 묻습니다.

  • 00:40:00 이 섹션에서 강사는 가능한 승자를 기준으로 분기를 재정렬하여 최고의 노드 검색 프로세스를 최적화하기 위해 minimax 알고리즘을 사용하는 방법을 설명합니다. 최종 승자가 먼저 선택됩니다. 강사는 각 리프 노드에 이진 값을 할당하여 이 개념을 설명하고 이 값을 사용하여 각 하위 트리의 최종 승자를 계산하여 최적의 이동을 찾습니다. 이 접근 방식을 점진적 심화와 결합하면 평가해야 하는 노드 수가 크게 줄어듭니다.

  • 00:45:00 이 섹션에서 강사는 알파-베타 가지치기를 개선하기 위해 점진적 심화 및 노드 재정렬 가능성에 대해 논의합니다. 점진적 심화는 작고 가지가 없는 나무의 경우 시간 낭비일 수 있지만 더 크고 복잡한 나무에는 필수적입니다. 그러나 점진적 심화 결과를 기반으로 노드를 재정렬하는 개념은 휴리스틱 함수의 정확도에 따라 다릅니다. 강사는 어떤 휴리스틱 함수도 완벽하지 않으며 결함이 있는 휴리스틱 함수는 노드를 재정렬할 때 더 나쁜 결과를 초래할 수 있음을 강조합니다. 마지막으로 강사는 상태에 도달한 방법에 관계없이 동일한 휴리스틱 값이 항상 특정 게임 상태와 연결되는 경우와 같이 일관된 휴리스틱 기능을 위해 휴리스틱 값 캐싱을 수행할 수 있는 방법을 설명합니다.

  • 00:50:00 비디오의 이 섹션에서 강사는 항상 최선의 수 대신 최악의 수를 제공하는 휴리스틱 사용의 잠재적인 단점에 대해 논의합니다. 위험을 최소화하는 데 도움이 될 수 있지만 가능한 최악의 가지 치기로 인해 보장된 성공이 부족할 수도 있습니다. 강사는 다가오는 퀴즈가 흥미롭고 다양한 도전이 포함될 것이라고 언급합니다. 그러나 그는 학생들에게 너무 스트레스 받지 말고 주말을 즐기라고 조언한다.
 

메가-R4. 신경망



메가-R4. 신경망

비디오는 신경망의 표현, 입력 및 출력에 대한 혼동, 시그모이드 및 성능 함수, 가중치 및 편향, 역전파, 시그모이드 및 성능 함수 변경, 임계값 가중치, 시각화 및 신경망의 잠재력을 포함하여 신경망의 다양한 측면을 다룹니다. 강사는 퀴즈에 필요한 다양한 공식과 델타를 재귀적으로 계산하고 조정하는 방법을 설명합니다. 그는 또한 간단한 문제를 해결하는 데 필요한 신경망 유형에 대해 논의하고 최근 메릴랜드 대학에서 열린 게임 플레이 대회에서 신경망을 실제로 적용한 사례를 언급합니다. 마지막으로 그는 신경망이 연구의 한계와 복잡성으로 인해 관심을 끌지 못했지만 여전히 퀴즈에는 유용하다고 언급합니다.

  • 00:00:00 이 섹션에서 Patrick은 603의 문제에 대한 신경망을 그리는 새로운 방법을 소개합니다. 그는 동일한 신경망의 두 가지 다른 표현을 보여주고 오른쪽에 있는 것이 바람직한 이유를 설명합니다. 그는 또한 입력 및 출력에 대한 혼란과 가중치를 사용한 함축된 곱셈과 같이 학생들이 신경망으로 작업할 때 일반적으로 직면하는 몇 가지 문제에 대해 논의합니다. Patrick은 이전 퀴즈로 작업하는 학생들을 위한 변환 가이드를 제공하고 퀴즈에 필요한 공식을 통해 작업합니다. 마지막으로 그는 시그모이드 함수가 다른 함수로 변경될 가능성을 언급하며 학생들에게 이런 일이 발생하면 플러스로 변경하라고 조언합니다.

  • 00:05:00 이 섹션에서 강사는 1 나누기 1 더하기 e의 마이너스 x인 시그모이드 함수와 시그모이드의 도함수가 자기 자신인 중요한 속성에 대해 설명합니다. 신경망에 결과가 얼마나 잘못된지 알려주는 성능 함수에 대해서도 설명합니다. 그들은 원하는 출력에서 실제 출력을 제곱한 값을 뺀 값인 1/2 D로 선호 함수를 선택했습니다. 그 이유는 성능의 도함수가 음수이므로 계산하기가 더 쉽기 때문입니다. 그런 다음 강사는 시그모이드 함수를 다른 함수로 변경하고 역전파 함수, 특히 원하는 결과를 향해 점진적으로 가중치를 변경하는 새로운 가중치 계산에 어떤 일이 발생하는지 분석하는 것에 대해 이야기합니다.

  • 00:10:00 이 섹션에서 화자는 신경망에 사용되는 가중치와 편향을 설명합니다. 가중치는 "w1I" 및 "w2B"와 같은 이름으로 표시되며 여기서 "I" 및 "B"는 네트워크의 노드입니다. 편향 오프셋은 항상 -1에 붙고, 언덕 오르기 단계의 크기를 결정하는 알파 값은 퀴즈에 주어집니다. 노드에 대한 입력은 "I"로 표시되며 특정 가중치의 변화로 인한 신경망 출력의 변화인 델타를 곱합니다. 델타는 편도함수를 사용하여 계산되어 가중치가 네트워크 성능에 얼마나 기여하는지 결정합니다.

  • 00:15:00 이 섹션에서 발표자는 신경망의 마지막 수준에서 최종 가중치를 얻기 위해 미분 및 체인 규칙을 사용하는 프로세스에 대해 설명합니다. 시그모이드 함수의 도함수가 사용되며, 새로운 가중치에 대한 델타를 계산하기 위해서는 이전 레이어의 가중치도 고려해야 합니다. 화자는 주어진 노드의 모든 자식을 합산하여 결과적으로 출력에 영향을 미치는 재귀 솔루션을 제안합니다. 이 프로세스는 최종 가중치에 대한 델타를 얻을 때까지 재귀적으로 수행됩니다.

  • 00:20:00 이 섹션에서 강사는 시그모이드 함수와 성능 함수를 변경하면 신경망에서 사용되는 방정식에 어떤 영향을 미칠 수 있는지 설명합니다. 그는 시그모이드 함수가 변경되면 변경되는 유일한 것은 시그모이드 함수의 새로운 도함수로 대체되는 델타 F 방정식뿐이라고 설명합니다. 마찬가지로 성능 함수를 대체하면 델타 F 방정식만 조정하면 됩니다. 그런 다음 강사는 계속해서 신경망에서 임계값 가중치와 일반 가중치의 차이와 이러한 가중치가 신경망의 전체 기능에 미치는 영향을 설명합니다.

  • 00:25:00 이 섹션에서 화자는 신경망을 시각화하는 방법과 문제를 효과적으로 해결하기 위해 이해하기 쉬운 표현을 갖는 것이 얼마나 중요한지에 대해 이야기합니다. 그는 가산기 노드가 작동하는 방식과 그 파생물이 단지 하나일 뿐이라고 설명합니다. 그는 델타 F와 델타 a에 대한 공식을 제공하고 신경망의 출력을 계산하고 새 가중치를 찾기 위해 한 단계 역전파를 수행하는 것과 관련된 파트 B의 프로세스를 설명합니다. 그는 학생들이 따라하고 있는지 확인하기 위해 모든 사람을 호출할 수 없기 때문에 의심을 명확히 하기 위해 질문을 하도록 학생들에게 요청합니다.

  • 00:30:00 이 섹션에서 비디오는 신경망에 대한 새로운 가중치와 역전파의 한 단계 후의 출력에 대해 설명합니다. 새로운 가중치는 이전 가중치, 학습률 상수 및 델타 값을 사용하여 계산되었습니다. 출력은 궁극적으로 3으로 결정되었습니다. 그런 다음 비디오는 네트워크가 주어진 데이터를 학습하도록 훈련된 경우 어떻게 될지에 대한 질문을 제기하고 신경망이 네트워크의 각 노드에 대한 그래프에 선을 그릴 수 있는 방법을 설명합니다. 그러나 이 그물이 무엇을 그릴지 예측하는 것은 약간 까다롭습니다.

  • 00:35:00 녹취록의 이 섹션에서 화자는 매번 합산되고 임계값을 취하지 않아 디지털 대신 아날로그로 만드는 신경망에 대해 논의합니다. 신경망의 단순화된 형태는 각 원에 시그모이드가 있는 원으로 표시되는 노드를 포함합니다. 각각을 한 번만 사용하여 ABCDEF를 1에서 6까지 일치시켜야 하는 문제가 있습니다. 발표자는 각 시그모이드 노드가 그림에 하나의 선을 그릴 수 있으며 두 입력을 모두 수신하면 대각선이 될 수 있고 하나의 입력을 수신하면 수평/수직이 될 수 있다고 설명합니다. 2차 수준 노드는 처음 두 노드에서 및/또는과 같은 논리적 부울 연산을 수행할 수 있습니다. 그런 다음 화자는 가장 쉬운 문제인 문제 6을 식별하고 각 네트가 문제에 일대일 매핑되어 6개 문제를 모두 함께 해결할 수 있다고 결론을 내립니다.

  • 00:40:00 이 섹션에서 발표자는 단일 노드에서 높아야 하는 두 입력을 구별하기 어렵기 때문에 X 또는 신경망을 만드는 것이 얼마나 어려운지 논의합니다. 그러나 많은 가능성이 있으며 화자는 노드 3과 노드 4를 사용하여 값을 제공하고 노드 5를 사용하여 XOR을 생성하는 임계값 조합을 제공할 것을 제안합니다. 화자는 또한 B와 같이 두 개의 수평선을 페어링하는 것은 불가능하지만 D는 하나의 수평선과 하나의 수직선을 그려야 하므로 B를 사용하여 두 개의 수평선을 만들어야 한다고 설명합니다.

  • 00:45:00 이 섹션에서 화자는 신경망 그리기 연습의 목적을 설명합니다. 간단한 문제를 그리면 문제 해결에 필요한 신경망 유형을 알 수 있습니다. 이것은 사람들이 주어진 문제에 대해 너무 단순하거나 너무 복잡한 신경망을 설계하는 것을 피하는 데 도움이 될 수 있습니다. 연사는 또한 메릴랜드 대학교에서 열린 게임 플레이 대회에서 최근 신경망을 실제로 적용한 예를 제공합니다.

  • 00:50:00 비디오의 이 섹션에서 화자는 다양한 작업과 규칙을 학습할 때 신경망의 잠재력에 대해 논의합니다. 그는 일련의 임의 데이터에서 무엇이든 학습하도록 신경망을 훈련시킨 실험에 대해 설명합니다. 실험 결과가 불분명했지만 연구의 다른 참가자는 실험 테스트를 통해 규칙의 기본 속성을 찾으려고 시도했습니다. 연사는 계속해서 신경망이 인지 과학, 인공 지능을 비롯한 많은 연구 분야에서 사용되었지만 그 한계와 복잡성으로 인해 인기를 얻지 못했다고 설명합니다. 그럼에도 불구하고 발표자는 오늘날 연구에 사용되는 실제 신경망이 퀴즈에 사용하기에는 너무 복잡할 것이라고 설명하지만 퀴즈 목적으로 간단한 네트워크를 생성한다고 언급합니다.
 

메가-R5. 서포트 벡터 머신



메가-R5. 서포트 벡터 머신

이 비디오는 다른 데이터 포인트와 동일하지 않은 지원 벡터를 찾아 데이터의 구분선 또는 결정 경계를 결정하는 지원 벡터 머신(SVM)에 대해 설명합니다. 또한 커널이 벡터를 직접 조작하지 않고 내적을 계산할 수 있도록 하는 커널 함수의 사용도 포함됩니다. 교수는 가장 넓은 도로에 대해 최상의 W를 제공하는 알파를 찾는 목표와 W가 SVM의 결정 경계가 되는 방법을 설명합니다. 학생들은 SVM 이면의 직관에 대해 묻고 Alphas에 기반한 최적화는 더 나은 데이터 분류를 위한 가장 넓은 길을 만듭니다. SVM Kernel은 또한 프로세스를 최적화하여 보다 효율적으로 만듭니다.

  • 00:00:00 이 섹션에서 발표자는 SVM(Support Vector Machine)을 소개하고 이 과정에서 배우기 가장 어려운 것 중 하나라고 말합니다. 그러나 그는 방대하고 복잡한 일련의 방정식을 다루지 않고도 일부 문제를 해결하는 데 도움이 될 수 있는 몇 가지 지름길을 사용할 수 있다고 설명합니다. 당면한 문제는 거리의 가장자리를 그리는 순환 지원 벡터가 필요하며 중간에 점선을 표시하고 W와 B를 모두 제공합니다. 그런 다음 발표자는 SVM의 중요한 방정식과 두 계수를 사용하여 점선을 찾는 방법을 설명합니다. W1과 W2는 두 개의 계수이고 X1과 X2는 벡터 X의 두 성분입니다.

  • 00:05:00 이 섹션에서는 비디오에서 데카르트 좌표의 선 방정식과 이것이 서포트 벡터 머신에서 방정식 W dot X plus B equals 0과 어떻게 관련되는지 설명합니다. 비디오는 알파가 경계 생성에 대한 각 포인트의 중요성을 결정하는 데 사용되며 양의 알파는 음의 알파와 같다고 설명합니다. 비디오는 또한 W와 B를 풀 때 사용할 수 있는 방정식을 제공하고 솔루션을 결정하는 데 서포트 벡터가 중요하다고 언급합니다. 발표자는 지원 벡터가 경계선의 벡터이며 목표는 원을 그리는 것이라고 설명합니다.

  • 00:10:00 이 섹션에서 발표자는 지원 벡터가 무엇인지에 대한 질문을 다루고 다양한 차원이 있는 더 복잡한 문제에서 데이터 요소를 2차원 그래프로 나타낼 수 없을 때 데이터 요소를 나타내는 데 벡터가 사용됨을 명확히 합니다. -차원 평면. 발표자는 서포트 벡터가 초평면을 묶는 포인트이며 양수 데이터 포인트와 음수 데이터 포인트 사이에 가능한 가장 넓은 공간을 확보하려고 시도하여 발견된다고 설명합니다. 또한 발표자는 때때로 세 번째 지원 벡터가 존재하지 않을 수 있다고 지적하고 평면 위의 한 쌍의 점을 예로 들어 설명합니다.

  • 00:15:00 이 섹션에서는 화자가 서포트 벡터 머신에서 W와 B를 찾는 방법을 설명합니다. 방정식에 점을 연결하는 이전 방법을 사용하는 대신 화자는 방정식을 y = mx + b 형식으로 변환하여 저렴한 전략을 도입합니다. y = x - 1로 설정함으로써 발표자는 이것이 새로운 방정식 y = -w1/w2 - b/w2를 찾는 데 어떻게 사용될 수 있는지 보여줍니다. 이 형식을 사용하여 화자는 가능한 방정식이 무한히 많고 w1/w2가 -1의 스칼라 배수이고 B/w2가 1의 스칼라 배수임을 보여줍니다.

  • 00:20:00 이 섹션에서 발표자는 서포트 벡터 머신의 W1, W2 및 B를 계산하기 위해 K 값을 결정하는 방법에 대해 설명합니다. W의 크기는 구성 요소 제곱합의 제곱근을 사용하여 계산할 수 있으며, 이는 4 나누기 2와 같습니다. W1과 W2의 비율은 -1이므로 제곱하면 W1 제곱은 W2 제곱과 같습니다. 따라서 이 공식을 사용하면 W1은 -1/4로 계산되고 W1은 음수이므로 W2와 B는 양의 1/4이 됩니다. 화자는 또한 방정식에 따라 알파 플러스와 알파 마이너스 값이 같다고 제안합니다.

  • 00:25:00 이 섹션에서 발표자는 서포트 벡터 머신의 예를 통해 작업을 계속합니다. 발표자는 예 2번에서 추가 빼기 기호가 추가되었다고 언급합니다. 계속해서 이 새로운 음수 부호가 주어진 지원 벡터를 결정하는 방법을 설명합니다. 거리를 결정하기 위한 계산이 표시되고 W의 크기는 3보다 2제곱근임이 밝혀졌습니다. 화자는 이 예에서 새로운 점의 추가로 인해 알파를 계산하는 데 시간이 더 오래 걸린다고 지적하지만 최종 답은 달성됩니다. .

  • 00:30:00 이 섹션에서는 데이터 분류에 적합하지 않은 선형 기준선을 만드는 1차원 벡터에서 지원 벡터 머신을 사용하는 데 중점을 둡니다. 이 문제를 해결하기 위해 커널 함수를 사용하여 데이터를 새로운 차원으로 가져옵니다. 이 함수는 일반적으로 Phi라고 하며 벡터 X에 적용될 때 이 새로운 차원으로 가져옵니다. 이 새로운 차원에서 직선을 그려 데이터를 분류할 수 있습니다. SVM의 발명가는 Phi를 명시적으로 계산하지 않고도 커널을 사용하여 새 차원에서 두 벡터 사이의 내적을 계산할 수 있기 때문에 Phi 함수가 끔찍한 괴물일지라도 작업할 필요가 없다는 것을 깨달았습니다.

  • 00:35:00 이 섹션에서 화자는 커널 함수를 사용하여 정규 공간에서 두 벡터의 내적을 찾는 방법을 설명합니다. 이렇게 하면 벡터 자체를 직접 사용할 필요가 없습니다. 벡터 X와 Z를 커널에 넣으면 결과 함수는 두 벡터의 내적을 대체하는 Z의 Phi로 점이 찍힌 X의 Phi를 반환합니다. 발표자는 커널 함수의 예를 제시하고 퀴즈를 풀기 위해 청중에게 해당 Phi 함수를 찾도록 도전합니다. 발표자는 또한 SVM에 대한 알파 계산이 복잡할 수 있지만 커널 기능을 사용하는 것이 직접 벡터 조작의 필요성을 제거하는 유용한 지름길이라고 지적합니다.

  • 00:40:00 이 섹션에서 연사는 코사인 및 사인 값을 사용하여 새로운 차원의 점 그래프에 대해 설명합니다. 플러스와 마이너스는 각각의 코사인 및 사인 값과 함께 표시됩니다. 2사분면에는 3개의 점이 있고 3사분면에는 3개의 점이 있습니다. 그런 다음 연사는 두 음수 사이의 차이점과 수직 이등분선에서 음수 및 양수 점인 것으로 밝혀진 지원 벡터를 찾는 방법에 대해 논의합니다. 두 개의 음수 점은 같은 선상에 있고 이등분선의 반대쪽에 있지 않고 원으로 표시됩니다.

  • 00:45:00 이 섹션에서 교수는 SVM에서 지원 벡터와 사용법에 대한 아이디어를 설명합니다. 그는 지원 벡터가 다른 데이터 포인트와 동일하지 않으며 SVM에 의해 생성된 구분선 또는 경계가 이러한 벡터에 의해 결정된다고 설명합니다. 테스트 데이터에서 점선은 SVM의 결정 경계입니다. 알고리즘은 가장 넓은 도로에 대해 최상의 W를 제공하는 알파 조합을 수학적으로 확인하여 알파를 최적화합니다. 학생들은 SVM 이면의 직관에 의문을 제기하고, 교수는 W가 의사결정 경계이며 Alphas 기반 최적화가 더 나은 방식으로 데이터를 분류할 수 있는 가장 넓은 길을 만든다고 설명합니다. SVM Kerne은 또한 최적화 프로세스를 최적화하여 보다 쉽고 효율적으로 만듭니다.
 

메가-R6. 부스팅



메가-R6. 부스팅

비디오 "Mega-R6. Boosting"에서 스피커는 기계 학습에서 부스팅의 개념을 설명하고 오류를 최소화하기 위해 올바른 분류기를 선택하는 과정을 시연합니다. 그들은 특정 특성을 기반으로 뱀파이어를 식별하는 예를 제공하고 가장 효과적인 분류자를 선택하는 방법에 대해 논의합니다. 선택한 분류자는 데이터 포인트에 적용되는 최종 분류자를 생성하여 올바르게 분류된 개수를 결정하는 데 사용됩니다. 연사는 또한 프로세스를 중지할 시기를 선택하는 것이 중요하다고 강조하고 완전한 정확성을 달성하는 것이 항상 실현 가능한 것은 아니라는 점을 인정합니다.

  • 00:00:00 이 섹션에서 발표자는 일련의 다양한 분류기를 포함하는 기계 학습의 부스팅 개념에 대해 논의합니다. 예제로 사용된 문제는 악, 이모, 반짝임, 낭만적인 관심사의 수와 같은 다양한 특성을 기반으로 뱀파이어를 식별하는 것과 관련됩니다. 부스팅의 핵심은 가능한 모든 분류기에 대해 데이터의 50/50 분할이 아닌 한 어떤 방식으로든 우수한 분류기를 만드는 데 사용할 수 있다는 것입니다. 또한 화자는 열거된 분류기보다 실제로 더 많은 분류기가 있다고 언급합니다. 많은 분류기가 이 특정 문제에 대해 무시되는 반대 버전을 가지고 있기 때문입니다.

  • 00:05:00 이 섹션에서 발표자는 부스팅을 위한 50/50 분할이 동전 던지기만큼 좋기 때문에 쓸모가 없는 방법을 설명합니다. 그러나 어떤 경우에는 50/50보다 나쁜 분류기가 50/50 분류기보다 여전히 낫습니다. 부스팅의 이후 라운드에서는 각 데이터 포인트의 가중치를 변경해야 하며, 가장 잘 수행하는 분류자는 가장 가중치를 올바르게 얻는 분류자가 됩니다. 가중치의 절반 미만을 얻는 분류기는 일반적으로 괜찮지만 화자는 가중치의 절반 이상을 올바르게 얻기 위해 역함수를 사용할 것을 권장합니다.

  • 00:10:00 이 섹션에서 화자는 각 분류기를 살펴보고 어떤 데이터 포인트가 잘못 분류되었는지 파악합니다. 모든 악한 것은 흡혈귀이고 모든 악하지 않은 것은 흡혈귀가 아니라는 가정하에, 그들은 악이 아니오일 때 천사, 에드워드 컬렌, 사야 오토나시, 레스타트 드 리옹쿠르를 틀렸다고 판단합니다. 이모 캐릭터와 변형 캐릭터에도 유사한 논리가 적용됩니다. 그러나 반짝임이 예와 같으면 1, 2, 4, 5, 6, 7, 8이 틀리고 낭만적인 관심사의 수가 2보다 크면 Searcy와 Edward Cullen이 틀립니다. 낭만적인 관심사의 수가 4보다 크면 해당 범주에 속하는 캐릭터가 없으므로 오분류되지 않습니다.

  • 00:15:00 비디오의 이 섹션에서 화자는 뱀파이어의 분류와 어떤 분류자가 잘못되었을 가능성이 있는지 논의합니다. 화자는 필연적으로 부정확한 음성 분류기로 이어질 특정 양성 분류기가 있음을 언급합니다. 그런 다음 화자는 몇 가지 분류기를 나열하고 개인이 가장 엉뚱한 꿈에서 그 중 6개만 사용할 것이라고 주장합니다. 발표자는 유용하다고 생각하는 분류자가 무엇인지 시청자에게 입력을 요청하고 사용할 가치가 있다고 생각되는 분류자를 동그라미로 표시합니다. 유용한 것으로 간주되는 분류자는 분류자 E 및 F와 같이 몇 가지 잘못되는 분류자입니다.

  • 00:20:00 이 섹션에서 발표자는 Mega-R6에서 부스팅을 위해 올바른 6개의 데이터 포인트를 선택하는 과정을 설명합니다. 한 가지 중요한 점은 선택할 수 있는 다양한 데이터 요소가 있지만 그 중 일부는 다른 것보다 훨씬 낫다는 것입니다. 예를 들어 데이터 포인트 F는 항상 E보다 나쁘므로 선택해서는 안 됩니다. 화자는 또한 6개의 데이터 포인트를 선택할 때 동일한 오답의 엄격한 하위 집합이 없는 데이터 포인트를 선택하는 것이 중요하다고 지적합니다. 6개의 데이터 포인트를 선택하는 과정은 오류를 최소화하기 위해 각 데이터 포인트의 가중치를 신중하게 고려해야 합니다.

  • 00:25:00 비디오의 이 섹션에서 발표자는 부스팅 프로세스와 작업에 가장 적합한 분류자를 선택하는 방법에 대해 논의합니다. 그는 쓸모없는 분류기를 제거하는 방법과 오류를 최소화하는 분류기를 선택하는 방법을 설명합니다. 그런 다음 발표자는 10개의 모든 데이터 포인트에 동일한 가중치를 부여하고 분류기 E를 가장 좋은 것으로 선택하는 부스팅 프로세스를 시연하기 위해 이동합니다. 그런 다음 오류는 1/5에서 계산되고 프로세스는 거기에서 계속됩니다.

  • 00:30:00 비디오의 이 섹션에서 발표자는 분류자가 내린 모든 결정을 올바르게 내리는 방법을 설명합니다. 이 프로세스에는 각 결정의 가중치를 올바른 결정의 1/2로, 잘못된 결정의 1/2로 변경하는 작업이 포함됩니다. 발표자는 이 프로세스를 자동화하는 방법에 대해 간략하게 설명합니다. 여기에는 가중치를 쉽게 더하고 최상의 결정을 선택할 수 있는 방식으로 가중치를 다시 작성하는 작업이 포함됩니다. 이 예에서는 오류가 가장 적은 결정이 선택됩니다.

  • 00:35:00 이 섹션에서 화자는 Mega-R6 부스팅 게임에서 최고의 분류자를 결정하는 과정에 대해 논의합니다. 녹취록에는 원 안팎의 숫자 합을 포함하는 계산과 최상의 분류자를 쉽게 결정할 수 있도록 원 안의 숫자를 변경하는 과정이 포함됩니다. 화자는 분류자를 결정할 때 이전 라운드를 무시하고 현재 가중치만 고려하는 것이 중요하다고 말합니다. 발표자는 또한 분류기를 연속으로 두 번 사용할 수 없다고 설명하고 이러한 설계 기능의 이유에 대해 논의합니다. 가장 좋은 분류기는 오답 수가 가장 적기 때문에 A로 결정됩니다.

  • 00:40:00 대본의 이 섹션에서 화자는 부스팅 방법을 사용하여 최종 분류기를 계산하는 방법에 대해 논의합니다. 최종 분류자는 이를 생성하는 데 사용된 가중 분류자의 조합입니다. 그런 다음 화자는 최종 분류자를 10개의 데이터 포인트에 적용하여 얼마나 많은 데이터 포인트가 올바르게 분류되었는지 결정하고 간단한 투표를 통해 출력을 결정합니다. 데이터 포인트 중 하나인 Twilight의 Edward Cullen은 3명의 분류자 중 2명이 그를 뱀파이어로 분류하지 않았기 때문에 올바르지 않습니다.

  • 00:45:00 비디오의 이 섹션에서 화자는 다양한 캐릭터를 그들의 특성과 사랑의 관심사, 그리고 그들을 분류하는 부스팅 알고리즘의 정확성에 따라 악, 이모 또는 뱀파이어로 논의합니다. 토론은 분류 프로세스를 더 빠르게 만들기 위해 여러 분류기를 사용하는 것에 대한 질문으로 이어지며, 화자는 어느 정도 정확하지만 더 많은 수의 분류기를 거쳐야 한다고 설명합니다. 연사는 또한 모든 것을 올바르게 하기 위한 수렴 프로세스가 항상 쉬운 것은 아니며 특정 라운드 수 후에 중지하도록 선택해야 할 수도 있음을 강조합니다.
 

메가-R7. 니어 미스, 아치 학습



메가-R7. 니어 미스, 아치 학습

영상에서는 다양한 종류의 광원과 그 특성에 대해 학습하는 니어 미스 학습의 개념을 소개합니다. Arch Learning 접근 방식은 6가지 휴리스틱을 사용하여 링크 필요, 금지 링크, 등반 트리, 확장 세트, 닫힌 간격 및 드롭 링크를 포함하여 모델을 개선합니다. 이 비디오는 확장 집합, 등반 트리, 닫힌 간격 및 드롭 링크와 같은 기계 학습에 사용되는 다양한 기술에 대해 설명합니다. 연사는 또한 Arch Learning 모델의 취약성과 순서에 대한 취약성과 관련된 문제에 대해 이야기하여 모순된 정보에 대해 일관성 없는 반응을 보입니다. 비디오는 또한 Mega-R7의 일반화 개념과 이전 모델과의 차이점에 대해 설명합니다. 또한 정보의 하위 집합을 표현하는 능력 측면에서 아일랜드 학습과 격자 학습 간의 장단점을 논의하고 구현 세부 사항이 다른 여러 모델을 사용하여 시스템을 교육합니다.

  • 00:00:00 이 섹션에서는 다양한 유형의 광원과 그 특성에 대해 학습하는 Near-Miss Learning Tree의 개념을 소개합니다. 시작 모델은 전기로 구동되는 평평한 바닥과 그늘이 있는 백열 전구입니다. 아치형 학습 접근 방식에는 링크 필요, 금지 링크, 트리 오르기, 세트 확장, 닫힌 간격 및 드롭 링크를 포함하여 6가지 휴리스틱을 사용하는 것이 포함됩니다. 필수 링크는 이전에 관련이 없는 기능을 요구 사항으로 만들고 금지 링크는 기능을 금지합니다. 이러한 휴리스틱은 특정 기능을 필요하거나 불필요하게 만들어서 모델을 구체화하는 데 도움이 되며 아차 미스 시나리오를 식별하는 데 도움이 될 수 있습니다.

  • 00:05:00 이 섹션에서 발표자는 확장 세트, 등반 트리, 닫힌 간격 및 드롭 링크를 포함하여 기계 학습에 사용되는 다양한 기술에 대해 설명합니다. 확장 세트 기술은 긍정적인 예제 세트를 생성하지만 공간을 절약하기 위해 특정 요소를 금지합니다. 클라임 트리 기법은 트리 위로 이동하여 보다 일반화된 모델을 생성하는 반면 폐쇄 구간은 전체 구간을 포함하여 허용 가능합니다. 드롭 링크 기술을 사용하면 모든 요소가 허용되는 경우 링크를 삭제하여 시스템을 절약할 수 있습니다. 그런 다음 연사는 각 기술의 사용법을 살펴보고 모델이 새로운 예를 더 잘 받아들이고 퀴즈 시간을 단축하기 위해 기계 학습에서 지식의 중요성을 강조합니다.

  • 00:10:00 이 섹션에서는 비디오에서 일반화의 개념과 이를 긍정적인 예로 확장하거나 가까운 간격을 위해 더 크게 만드는 방법에 대해 설명합니다. 하지만 부정적인 사례가 있다면 시스템을 복잡하게 만들 수 있고 구현을 조정해야 할 수도 있습니다. 그런 다음 비디오는 램프의 예와 긍정적인 예가 있을 때 간격을 일반화하기 위해 일반화 휴리스틱을 사용하여 모델을 조정할 수 있는 방법을 제공합니다. 부정적인 예가 있는 경우 구현은 시스템이 효과적으로 작동하도록 드롭 링크 접근 방식을 사용해야 할 수 있습니다.

  • 00:15:00 비디오의 이 섹션에서 연사는 1960년대에 개발된 일종의 기계 학습 모델인 Arch Learning 모델과 관련된 몇 가지 문제에 대해 논의합니다. 그들은 시스템이 취약하고 특히 주문에 취약한 방식을 설명합니다. 즉, 데이터가 표시되는 순서가 시스템의 학습 능력에 큰 영향을 미칠 수 있음을 의미합니다. 또한 시스템이 어떻게 일관성이 없고 모순되는 정보에 제대로 반응하지 못하는지 설명합니다. 화자는 또한 본 모든 예를 저장하고 새로운 예와 비교 및 대조하여 패턴을 식별하고 주제에 대한 이해를 다듬을 수 있는 격자 학습이라는 대체 유형의 학습을 설명합니다.

  • 00:20:00 이 섹션에서는 우아함과 단순함을 추구하기 위해 의도적으로 기억하지 않는 시스템인 아치 학습의 개념에 대해 설명합니다. 이 섹션에서는 경험한 모든 것을 저장하고 기억하지 않기 때문에 이전에 가지고 놀았던 블록에 대해 말할 수 없는 아기와 아이디어를 비교합니다. 그러나 인간은 훌륭한 교사이며 기계가 배울 수 있는 적절한 예를 제공합니다. 비디오는 또한 범위를 더 인색하고 우아하며 단순하게 설정하는 대신 트리를 등반하여 히트를 일반화하는 방법에 대해 이야기합니다. 마지막으로 형광등의 예가 논의되고 일반화에 사용되는 휴리스틱은 평평한 기초에서 기초 지지 자체까지 나무를 오르는 것입니다.

  • 00:25:00 이 섹션에서는 발표자가 Mega-R7의 새 모델과 이전 모델과의 차이점에 대해 설명합니다. 시스템이 이전에 보았던 것과 비슷하지만 완전히 동일하지는 않은 입력을 만나는 인스턴스인 아차 사고의 몇 가지 예를 검토합니다. 발표자는 이러한 아차 실패는 모델을 변경할 필요가 없으며 그대로 두는 것이 허용된다고 설명합니다. 또한 화자는 형광등과 같은 부정적인 예가 아차사고로 간주될 수 있는지에 대한 질문에 답하며, 그들은 시스템이 기억력이 없고 형광등이 긍정적인 예였음을 알지 못하기 때문에 그렇지 않다고 대답합니다. .

  • 00:30:00 이 섹션에서 발표자는 정보의 하위 집합을 표현하는 능력 측면에서 아일랜드 학습과 격자 학습의 장단점에 대해 논의합니다. 아일랜드 학습은 기억력이 없지만 긍정적인 예를 보지 않고는 일부를 수용 가능한 것으로 표현할 수 없으며, 이는 일부 표현력을 잃을 수 있습니다. 그러나 이 문제는 격자 학습에서 해결되었지만 고유한 문제가 있습니다. 연사는 또한 다양한 전구와 전기 소스를 사용하면서 기본 지원 요구 사항을 충족하는 여러 모델을 제시하는 것과 같이 시스템을 가르치는 방법을 강조합니다. 하나를 선택하면 다른 결과가 나올 수 있으므로 구현 세부 사항을 묻고 명확히 해야 합니다.
 

AlphaGo - 영화 | 수상 경력에 빛나는 전체 다큐멘터리



AlphaGo - 영화 | 수상 경력에 빛나는 전체 다큐멘터리

바둑에서 인간 플레이어를 이기기 위해 고안된 AlphaGo 컴퓨터 프로그램의 개발에 관한 다큐멘터리. 이 영화는 5게임 경기에서 세계 챔피언 인간 플레이어에 대한 프로그램의 승리를 따릅니다. 일부 시청자들은 알파고의 승리가 우리가 알고 있는 인류의 종말을 예고할 수도 있다고 생각합니다.

  • 00:00:00 이 비디오는 바둑에서 세계 챔피언인 인간 선수를 이긴 컴퓨터 프로그램인 AlphaGo에 관한 것입니다. 이 비디오는 알파고의 승리의 의미를 설명하고 컴퓨터가 인간 플레이어와 대결하는 장면을 보여줍니다. AlphaGo의 배후에 있는 회사인 DeepMind는 세계에서 가장 강력한 바둑 플레이어인 Demyster Harbis를 초대하여 프로젝트가 진행되는 모습을 보기 위해 런던에 있는 회사 사무실을 방문하기를 원합니다. 참석에 관심이 있으시면 매우 감사하겠습니다!

  • 00:05:00 딥마인드가 개발한 컴퓨터 프로그램 알파고가 5경기에서 프로 바둑 선수 이세돌을 이겼다. 다큐멘터리는 프로그램을 개발하고 교육하려는 팀의 노력과 경기 자체를 따릅니다.

  • 00:10:00 구글이 개발한 컴퓨터 프로그램 알파고가 5경기에서 유럽 바둑 챔피언 이세돌을 꺾고 있다. 다큐멘터리는 AlphaGo의 개발 및 경기 준비를 따릅니다. 초기 회의론에도 불구하고 대중은 AlphaGo의 성능에 큰 감명을 받았으며 일부에서는 인공 지능 분야에서 인간의 지배가 끝났다는 신호로 예고하기도 했습니다.

  • 00:15:00 바둑에서 인간 챔피언을 이기기 위해 고안된 컴퓨터 프로그램 알파고가 지난주 열린 바둑 경기에서 인간 선수 이세돌에게 공개적으로 패배했습니다. 영상은 패배의 의미와 시스템 개선을 위한 AlphaGo 팀의 지속적인 노력에 대해 논의합니다.

  • 00:20:00 "세계 최고의 바둑 선수"로 불리는 컴퓨터 프로그램 AlphaGo는 5게임에서 프로 인간 선수와 맞붙습니다. Fanway는 팀의 고문이며 전략을 개선하는 데 도움을 줍니다.

  • 00:25:00 AlphaGo는 내일 역사적인 경기에서 한국 프로 바둑 선수인 이세돌과 대결할 예정입니다. 다큐멘터리는 경기를 준비하는 팀을 따라가며 그들의 기대치를 논의합니다.

  • 00:30:00 보드 게임에서 인간 챔피언을 물리친 컴퓨터 프로그램 AlphaGo는 수상 경력에 빛나는 전체 다큐멘터리의 주제입니다. 다큐멘터리는 프로그램의 개발과 인간 상대와의 성공적인 대결을 따릅니다.

  • 00:35:00 Google에서 개발한 컴퓨터 프로그램인 AlphaGo가 5게임 경기에서 세계 챔피언인 인간 플레이어를 이겼습니다. 프로그램의 성공은 경험을 통해 배울 수 있는 능력과 마찬가지로 많은 사람들에게 놀라운 일입니다.

  • 00:40:00 DeepMind에서 개발한 컴퓨터 프로그램인 AlphaGo가 5경기에서 프로 바둑 선수를 이겼습니다. 컴퓨터 프로그램은 인간에 의해 개발되었으며 인공 지능, 연구의 돌파구로 간주됩니다.

  • 00:45:00 바둑 게임에서 인간 프로 선수를 물리치기 위해 고안된 컴퓨터 프로그램 AlphaGo는 Google DeepMind Challenge의 두 번째 게임에서 그 성능으로 관찰자들을 놀라게 했습니다. AI의 정책 네트워크, 가치망, 트리 탐색은 당면한 게임 상황에 대한 최선의 수를 예측하는 데 매우 효과적이었고 AlphaGo의 승리로 이어졌습니다.

  • 00:50:00 구글이 개발한 컴퓨터 프로그램 알파고가 세계적으로 유명한 인간 선수를 상대로 우승을 차지했다. 다큐멘터리는 경기와 AlphaGo의 승리의 의미를 조사합니다.

  • 00:55:00 AlphaGo는 세계 챔피언인 인간 선수를 상대로 3경기 중 2경기를 이겼지만 관중들의 슬픔과 상실감이 만연합니다. 알파고는 컴퓨터 프로그램일 뿐인데 해설자들은 알파고를 마치 의식 있는 존재인 양 언급하며 점점 커져가는 힘의 의미를 걱정한다.
 

Deepmind AlphaZero - 인간 지식 없이 게임 마스터하기



Deepmind AlphaZero - 인간 지식 없이 게임 마스터하기

이 비디오는 DeepMind의 심층 강화 학습 아키텍처인 AlphaZero의 개발을 살펴봅니다. AlphaZero는 통합 정책 및 가치 네트워크를 활용하여 사전 인적 데이터 없이 막대한 상태 공간이 있는 게임에서 성공합니다. AlphaZero의 알고리즘은 전체 몬테카를로 트리 검색에서 선택한 행동을 예측하기 위해 신경망을 교육하고 시간이 지남에 따라 더 강력한 플레이어를 생성하기 위해 반복적으로 지식을 추출합니다. 이 알고리즘은 단 몇 시간의 교육만으로 이전 버전을 능가하는 인상적인 학습 곡선을 보여주었고 이전 검색 엔진보다 적은 수의 위치를 평가함에도 불구하고 놀라운 확장성을 보여주었습니다. 이 비디오는 또한 범용 강화 학습의 잠재력을 보여주면서 최고의 인간 및 기계 접근 방식을 결합하는 AlphaZero의 능력에 대해 설명합니다.

  • 00:00:00 비디오의 이 섹션에서 David는 인간 프로 선수와 세계 챔피언을 이길 수 있었던 DeepMind의 딥 강화 학습 아키텍처의 원래 버전인 AlphaGo에 대해 설명합니다. AlphaGo는 확률 분포를 기반으로 플레이할 동작을 추천하는 정책 네트워크와 게임의 승자를 예측하는 가치 네트워크의 두 가지 컨벌루션 신경망을 사용합니다. 네트워크는 지도 학습과 인간 데이터 세트에 대한 강화 학습 및 자체적으로 진행되는 게임을 통해 훈련됩니다. 바둑에서 AlphaGo의 성공은 거대한 상태 공간이 있는 게임에서 성공할 수 있는 기계 학습 및 인공 지능 기반 접근 방식의 잠재력을 보여줍니다.

  • 00:05:00 이 섹션에서 발표자는 AlphaGo의 훈련 파이프라인과 정책 네트워크 및 가치 네트워크를 사용하여 바둑 게임의 방대한 검색 기반을 고려하여 검색을 더 다루기 쉽게 만드는 방법에 대해 설명합니다. 정책 네트워크는 검색 트리의 폭을 줄이기 위한 움직임을 제안하는 반면, 가치 네트워크는 검색의 깊이를 줄이기 위해 어떤 위치에서든 게임의 승자를 예측합니다. 이를 통해 알고리즘은 몬테카를로 트리 검색을 사용하여 트리의 중요한 부분을 효율적으로 검색할 수 있습니다. 이 검색 트리는 가장 관련 있는 부분만 고려하여 선택적으로 큰 검색 트리를 효과적으로 확장합니다. 이로 인해 더 깊은 네트워크와 더 많은 강화 학습 반복으로 훈련된 AlphaGo Master가 개발되어 세계 최고의 인간 플레이어를 상대로 60대 0으로 승리했습니다.

  • 00:10:00 이 섹션에서 발표자는 AlphaGo Zero의 개발에 대해 설명합니다. AlphaGo Zero는 인간의 사전 데이터 없이 완전히 무작위로 게임을 시작하고 게임의 규칙만 사용하여 바둑 게임을 하는 방법을 학습합니다. AlphaGo Zero는 손으로 만든 기능을 사용하지 않고 정책 네트워크와 가치 네트워크를 통합하고 무작위 Monte Carlo 롤아웃 없이 더 간단한 검색을 사용하고 복잡성을 줄이는 더 간단한 접근 방식을 사용한다는 점에서 원래 AlphaGo와 다릅니다. 모든 도메인. AlphaGo Zero의 알고리즘은 각 위치에 대한 현재 신경망을 사용하여 Monte Carlo 트리 검색을 실행하고 제안된 동작을 수행한 다음 완성된 게임에서 도달한 위치에서 새로운 신경망을 훈련하는 것을 포함합니다.

  • 00:15:00 이 섹션에서 발표자는 모든 지식을 추출하기 위해 전체 몬테카를로 트리 검색(MCTS)에서 선택한 동작을 직접 예측하도록 신경망을 훈련시키는 AlphaGo Zero 알고리즘의 프로세스를 설명합니다. 게임의 승자를 예측하기 위해 새로운 가치 네트워크를 훈련합니다. 절차를 반복하여 매번 더 강한 플레이어를 생성하고 더 높은 품질의 데이터를 생성하여 더 강하고 더 강한 플레이로 이어집니다. AlphaGo Zero는 검색을 정책 평가에 통합하여 검색 기반 정책 개선을 사용하여 고품질 결과와 신경망에 대한 정확한 훈련 신호를 가능하게 합니다. 학습 곡선은 AlphaGo Zero가 단 72시간 만에 이전 버전을 능가했고 21일 만에 인간 플레이어를 60명 차로 이겼음을 보여줍니다.

  • 00:20:00 이 섹션에서는 발표자가 개발된 다양한 버전의 AlphaGo에 대해 설명합니다. 유럽 챔피언을 5게임 차로 이긴 오리지널 버전부터 무작위 가중치에서 완전히 훈련된 AlphaGo Zero까지 약 5,000 Elo로 AlphaGo의 가장 강력한 버전입니다. 새 버전인 AlphaZero는 체스, 쇼기, 바둑의 세 가지 게임에 동일한 알고리즘을 적용합니다. 특히 체스 게임은 AI에서 고도로 연구된 영역이었으며, 컴퓨터 체스는 인공 지능 역사상 가장 많이 연구된 영역으로 현재 인간보다 명백하게 더 나은 고도로 전문화된 시스템에서 절정에 이릅니다.

  • 00:25:00 이 섹션에서 연사는 체스보다 계산하기 어렵고 더 크고 흥미로운 행동 공간이 있는 쇼기 게임의 복잡성에 대해 논의합니다. 그는 shogi를 위한 가장 강력한 컴퓨터 프로그램이 최근에야 인간 세계 챔피언 수준에 도달했기 때문에 DeepMind가 추구할 흥미로운 사례 연구라고 설명합니다. 체스와 쇼기를 위한 최신 엔진은 알파-베타 검색을 기반으로 하며, 수년에 걸쳐 인간 그랜드마스터가 조정한 수작업 평가 기능과 고도로 최적화된 수많은 검색 확장. 그런 다음 스피커는 최고의 체스 프로그램인 Stockfish의 구성 요소를 AlphaZero와 비교합니다. AlphaZero는 말 그대로 동일한 구성 요소가 전혀 없으며 자체 플레이, 강화 학습 및 Monte Carlo 검색을 기반으로 하는 원칙적인 아이디어로 대체합니다. 화자는 체스가 완벽한 병진 불변성, 대칭성 부족, 복합 행동이 있는 더 흥미로운 행동 공간, 무승부를 포함한다는 점에서 바둑과 다르다고 말합니다.

  • 00:30:00 이 섹션에서 연사는 체스, 쇼기, 바둑의 세 가지 게임에 대한 학습 곡선에 대해 설명합니다. AlphaZero는 모든 게임에 동일한 네트워크 아키텍처와 설정을 사용하여 처음부터 단 4시간의 훈련 만에 체스 게임에서 세계 챔피언 Stockfish를 능가했습니다. AlphaZero는 이전 버전의 AlphaGo Zero와 현재 세계 챔피언 Shogi를 불과 수십만 걸음 또는 8시간의 훈련 후에 쉽게 이겼습니다. AlphaZero의 몬테카를로 트리 검색의 확장성은 초당 약 7천만 개의 위치를 평가하는 Stockfish를 포함하여 이전 프로그램에서 사용된 알파-베타 검색 엔진과 비교되었지만 AlphaZero는 초당 약 8만 개의 위치만 평가합니다. 발표자는 신경망과 같은 심층 함수 근사기와 결합할 때 훨씬 적은 수의 위치를 평가함에도 불구하고 MCTS가 매우 효과적인 이유는 검색에 존재하는 근사 오류를 제거하는 데 도움이 되어 더 나은 성능과 확장성 마지막으로 AlphaZero는 체스 게임에서 가장 흔한 12개의 인간 오프닝을 선택하여 인간 체스 지식을 자체적으로 발견했습니다.

  • 00:35:00 이 섹션에서 발표자는 AlphaZero의 특정 체스 오프닝 사용과 셀프 플레이 중에 어떻게 플레이했는지에 대해 설명합니다. AlphaZero는 이러한 변형을 플레이하는 데 상당한 시간을 보냈지만 결국 다른 오프닝을 선호하기 시작하여 더 자주 플레이되는 일부를 무시했습니다. 발표자는 또한 AlphaZero의 방법을 다른 영역으로 이전할 수 있는 범용 심층 강화 학습에 사용하는 과정에 대해 언급합니다. 알고리즘이 전문화될수록 다른 영역에 적응할 수 있는 능력이 줄어듭니다. 인간과 기계를 함께 사용하는 것은 흥미로운 전망이지만 발표자는 AlphaZero가 이전 체스 프로그램보다 더 인간적인 방식으로 플레이한다고 강조하여 두 세계의 장점을 결합할 수 있는 능력을 나타냅니다.

  • 00:40:00 이 섹션에서 화자는 AlphaGo Zero에 인간 지식으로 게임의 규칙을 내장했을 뿐이지만 여기에는 동작의 기본 인코딩 및 디코딩이 포함된다고 설명합니다. 예를 들어, 체스에서 그들은 집는 조각과 그것을 내려놓는 데 사용되는 평면을 인코딩하기 위해 공간 표현을 사용했습니다. 그들은 행동 공간에서 불법적인 움직임을 배제합니다. 연사는 또한 게임당 한 번의 실행만 수행했기 때문에 실험에 오차 막대를 포함하지 않았다고 설명합니다. 그러나 그들은 여러 실험을 실행했으며 그 결과는 매우 재현 가능합니다.
 

AlphaGo - AI가 역사상 가장 어려운 보드게임을 마스터한 방법



AlphaGo - AI가 역사상 가장 어려운 보드게임을 마스터한 방법

이 비디오는 인간 데이터 세트를 사용하지 않고 전적으로 셀프 플레이를 통해 훈련된 AI 시스템인 AlphaGo Zero의 기술적 세부 사항을 살펴봅니다. 이 시스템은 가치와 강력한 움직임을 예측하기 위해 잔차 네트워크 아키텍처와 2개 연구 접근 방식을 사용했습니다. 이 비디오는 게임 결과를 예측하는 기능과 바둑에서 잘 알려진 동작에서 벗어나는 시스템의 발견 및 이동을 포함하여 개선된 사항을 강조합니다. 그러나 시스템의 실제 적용은 완벽한 시뮬레이터에 대한 필요성으로 인해 제한되어 다른 분야에 접근 방식을 적용하기 어렵습니다.

  • 00:00:00 이 섹션에서는 AlphaGo Zero가 이전 버전에 비해 개선된 기술적 세부 사항에 대해 설명합니다. 첫 번째 주요 변경 사항은 AlphaGo Zero가 완전히 셀프 플레이로 훈련하고 인간 전문 바둑 플레이어의 데이터 세트를 사용하지 않는다는 것입니다. 또한 게임을 위해 이전에 손으로 만든 기능을 사용하지 않고 보드 상태를 관찰하여 완전히 학습합니다. 네트워크 아키텍처는 완전히 잔류 아키텍처로 변경되었으며 별도의 정책 및 평가 네트워크를 갖는 대신 이제 두 가지 모두를 수행하는 단일 대규모 네트워크로 결합됩니다. Montecarlo 롤아웃은 단일 네트워크를 사용하여 가치 예측을 수행하고 강력한 움직임을 제시하는 더 단순한 2개 연구 접근 방식으로 대체되었습니다. 전반적으로 이것은 19 x 19 x 16 이진수, 잔여 네트워크 및 기능 벡터에서 생성되는 값 표현 및 정책 벡터의 보드 표현으로 나타났습니다.

  • 00:05:00 이 섹션에서는 좋은 수의 높은 확률과 나쁜 수의 낮은 확률로 이어지는 네트워크 아키텍처를 사용하여 AlphaGo가 좋은 수를 플레이하도록 훈련된 방법을 설명합니다. AlphaGo의 첫 번째 버전은 전문적인 바둑 동작 데이터 세트에 대한 감독 학습을 사용하여 훈련된 후 셀프 플레이를 사용하여 미세 조정 단계를 거쳤습니다. 그러나 새로운 버전인 AlphaGo Zero는 데이터 세트를 전혀 사용하지 않고 몬테카를로 트리 탐색을 사용하여 완전히 셀프 플레이를 통해 학습하므로 자중 훈련 과정이 안정화됩니다. 검색 트리를 확장하고 Monte Carlo 트리 검색을 사용하여 시스템은 어떤 움직임이 강하고 그렇지 않은지 추정할 수 있습니다. 마지막으로 비디오는 이 프로세스가 완벽한 시뮬레이터가 있는 바둑과 같은 게임에만 해당되어 이 접근 방식의 실제 적용을 어렵게 만든다는 점을 강조합니다.

  • 00:10:00 이 섹션에서 발표자는 AlphaGo 네트워크 아키텍처의 개선 사항을 설명하는 다양한 그래프에 대해 논의합니다. 한 그래프는 AlphaGo Zero 네트워크가 현재 보드 위치를 기반으로 게임 결과를 예측하는 능력을 보여주며 이전 버전보다 크게 개선되었습니다. 화자는 또한 일반 컨볼루션 아키텍처에서 잔여 네트워크로 전환한 결과 크게 개선되었다고 언급했습니다. 또한 그래프는 AlphaGo Zero가 바둑 게임에서 잘 알려진 동작을 발견하고 이동한 방법을 보여줍니다. 전반적으로 발표자는 Google DeepMind 팀의 결과에 깊은 인상을 받았으며 시청자가 댓글 섹션에서 질문하도록 권장합니다.
 

처음부터 AlphaZero – 기계 학습 자습서



처음부터 AlphaZero – 기계 학습 자습서

00:00:00 - 01:00:00 "AlphaZero from Scratch - Machine Learning Tutorial" 비디오는 Python 및 PyTorch를 사용하여 AlphaZero 알고리즘을 구축하고 훈련하여 Tic에 대한 예제와 함께 초인적인 수준에서 복잡한 보드 게임을 플레이하는 방법을 사용자에게 알려줍니다. -tac-toe 및 연결 4. 알고리즘의 핵심 구성 요소 중 하나는 Monte Carlo 트리 검색입니다. 여기에는 가장 유망한 작업 선택, 트리 확장 및 게임 시뮬레이션이 포함되며 결과는 훈련을 위해 역전파됩니다. 튜토리얼은 몬테카를로 연구 알고리즘 동안 노드의 확장, 셀프 플레이 과정, 정책과 MCTS 분포, 가치와 최종 보상 간의 차이를 최소화하는 손실 함수를 사용하여 모델을 훈련하는 방법을 보여줍니다. 비디오는 Tic-tac-toe 게임을 만들고 while 루프를 통해 테스트하는 것으로 끝납니다.

01:00:00 - 02:00:00 AlphaZero를 처음부터 빌드하는 방법에 대한 자습서의 이 섹션에서 강사는 Tic-tac-toe 게임을 위한 Monte Carlo Tree Search(MCTS) 알고리즘의 구현을 시연합니다. 이 알고리즘은 선택, 확장, 시뮬레이션 및 역전파 단계에 대한 반복 반복 루프를 정의하는 검색 방법을 포함하는 MCTS용 새 클래스를 통해 구현됩니다. 이 비디오는 AlphaZero 신경망의 아키텍처 구현도 다룹니다. 여기에는 두 개의 헤드(정책용 헤드와 가치용 헤드)가 포함되어 있으며 건너뛰기 연결이 있는 잔여 네트워크를 사용합니다. 정책 헤드는 소프트맥스 함수를 사용하여 가장 유망한 조치를 나타내고 값 헤드는 현재 상태가 얼마나 좋은지 추정합니다. 발표자는 또한 ResNet 클래스의 시작 블록 및 백본 구현에 대해 논의하고 AlphaZero 모델을 사용하여 Tic-Tac-Toe에서 주어진 상태에 대한 정책 및 값을 얻는 방법을 설명합니다.

02:00:00 - 03:00:00 "AlphaZero from Scratch" 자습서는 기계 학습을 통해 AlphaZero 알고리즘을 구축하는 방법을 보여줍니다. 발표자는 MCTS 알고리즘 업데이트, 셀프 플레이 및 훈련 방법부터 확률 분포에 온도 추가, 모델의 가중치 감쇠 및 GPU 지원, 루트 노드에 노이즈 추가와 같은 개선 사항에 이르기까지 다양한 주제를 다룹니다. 튜토리얼은 노드 상태를 인코딩하고, 정책 및 값 출력을 얻고, softmax, 유효한 이동 및 Dirichlet 랜덤 노이즈를 사용하여 정책을 조정하여 탐색을 추가하는 방법을 보여줌으로써 시청자에게 이러한 기능의 구현을 단계별로 안내합니다. 유망한 행동을 놓치지 않습니다.

03:00:00 - 04:05:00 머신 러닝을 사용하여 처음부터 AlphaZero를 만드는 방법에 대한 이 YouTube 자습서에서 강사는 잡음 요소를 사용하여 정책에 탐색 추가, 교육 모델을 위한 CPU 및 GPU 지원 통합과 같은 다양한 주제를 다룹니다. 더 복잡한 게임, Connect Four 게임을 만들기 위한 소스 코드 업데이트, 병렬화를 통해 AlphaZero 구현의 효율성 증가, Python에서 셀프 플레이 게임을 위한 두 개의 새로운 클래스 생성, 효율성을 높이기 위한 인코딩 상태, Monte Carlo Tree Search 알고리즘 구현 AlphaZero의 경우 병렬 fs0을 사용하여 Connect Four의 모델을 교육합니다. 튜토리얼은 효율적이고 효과적인 AlphaZero 구현을 만드는 데 중점을 두고 각 주제에 대한 단계별 지침을 제공합니다. 발표자는 Kegel 환경 패키지를 사용하여 Connect Four 환경을 만드는 방법을 시연한 다음 훈련된 AlphaZero 모델을 기반으로 MCTS 검색 알고리즘을 사용하는 두 명의 에이전트와 함께 게임을 실행하고 시각화합니다. 또한 발표자는 코드를 약간 수정하고 훈련된 모델을 기반으로 한 예측을 위해 MCTS 알고리즘을 사용하여 플레이어 1을 에이전트로 정의합니다. 튜토리얼은 발표자가 각 체크포인트에 대한 jupyter 노트북이 포함된 GitHub 리포지토리와 Tic-tac-toe 및 Connect Four에 대한 마지막 모델이 포함된 weights 폴더를 제공하는 것으로 끝납니다. Mu Zero에 대한 후속 비디오를 만드는 데 관심이 있음을 나타냅니다. 그것에 대한 관심.


1 부

  • 00:00:00 이 섹션에서는 기계 학습 기술을 사용하여 초인적인 수준에서 복잡한 보드 게임을 플레이하는 방법을 배우는 AI 알고리즘인 AlphaZero의 개념을 소개합니다. 이 알고리즘은 처음에 DeepMind에서 개발했으며 바둑과 같은 게임에서 인상적인 결과를 얻을 수 있으며 심지어 수학에서 새로운 알고리즘을 발명할 수도 있습니다. 이 튜토리얼은 사용자에게 Python 및 PyTorch를 사용하여 AlphaZero를 처음부터 구축하고 Tic-tac-toe 및 Connect 4와 같은 게임에서 이를 훈련하고 평가하는 방법을 알려줍니다. 알고리즘에는 셀프 플레이와 훈련의 두 가지 구성 요소가 있으며 신경망을 사용하여 입력 상태를 기반으로 정책 및 값을 생성합니다. 이 주기를 반복함으로써 알고리즘은 인간보다 게임을 더 잘하도록 스스로 최적화할 수 있습니다.

  • 00:05:00 이 섹션에서는 몬테카를로 트리 검색, 셀프 플레이에 사용되는 검색 알고리즘 및 일반 알고리즘에 대해 설명합니다. 상태(이 경우 블록 위치)를 취하고 미래에 트리를 구축하여 가장 유망한 조치를 찾습니다. 각 노드는 상태를 저장하고 미래에 해당 방향으로 플레이할 때 달성한 총 승리 수와 총 방문 수를 저장합니다. 각 노드의 자식들의 승률은 가장 유망한 행동을 결정하는데 사용되며, 이 정보는 틱택토와 같은 실제 게임에서 사용될 수 있습니다. 노드에 대한 데이터는 더 확장될 수 있는 리프 노드에 도달할 때까지 선택 단계에서 트리를 따라 내려감으로써 생성됩니다.

  • 00:10:00 이 섹션에서 연사는 게임 플레이를 위한 몬테카를로 트리 검색(MCTS)과 관련된 다양한 단계에 대해 논의합니다. 선택 단계에는 더 높은 UCB 공식을 갖고 비교적 적은 횟수로 방문한 자식 노드를 선택하는 작업이 포함됩니다. 확장 단계에는 새 노드를 만들어 트리에 추가하는 것이 포함되며, 시뮬레이션 단계에는 터미널 노드에 도달할 때까지 무작위로 게임을 플레이하는 것이 포함됩니다. 역전파 단계에서는 시뮬레이션 단계에서 얻은 결과가 트리 위로 전파되어 각 노드의 승리 및 방문 수를 업데이트합니다.

  • 00:15:00 비디오의 이 섹션에서 강사는 알고리즘이 트리를 따라 내려가 다음 노드를 선택하는 선택 단계부터 시작하여 MCTS(Monte Carlo Tree Search) 프로세스의 예를 살펴봅니다. 그런 다음 새 노드가 생성되는 확장 단계로 진행한 다음 터미널 노드에 도달하기 위해 임의의 작업을 수행하는 시뮬레이션 단계가 이어집니다. 그런 다음 알고리즘은 게임이 이겼는지, 졌는지 또는 규칙을 위반했는지 확인합니다. 게임에서 이겼기 때문에 역전파가 수행되어 MCTS 프로세스 동안 통과한 노드의 승리 및 방문 횟수를 업데이트합니다. 프로세스는 새로운 선택 단계와 확장 단계로 반복되며 새 노드가 생성되고 시뮬레이션 단계가 다시 한 번 수행됩니다.

  • 00:20:00 이 섹션에서는 AlphaZero를 사용하여 MCTS 알고리즘에서 시뮬레이션 및 역전파하는 과정을 튜토리얼로 진행합니다. 이 튜토리얼에 제시된 예제는 시뮬레이션 단계에서의 손실을 보여줍니다. 역전파 시 방문 횟수만 증가하며, 시뮬레이션 중 AI가 게임에서 졌기 때문에 총 승리 횟수는 동일하게 유지됩니다. 그런 다음 튜토리얼은 AlphaZero를 사용하여 MCTS의 선택 및 확장 프로세스를 설명하기 위해 이동합니다. 튜토리얼은 각 자녀의 UCB 점수를 계산하는 방법과 가장 높은 점수를 받은 자녀를 선택하는 방법을 보여줍니다. 그런 다음 프로세스는 확장이 발생하는 리프 노드에 도달할 때까지 각 노드에 대한 UCB 공식을 계산하는 AI와 함께 반복됩니다.

  • 00:25:00 자습서의 이 섹션에서는 Monte Carlo 연구 기술이 General AlphaZero 알고리즘에 적용될 때 어떻게 변경되는지에 초점을 맞춥니다. 알고리즘에는 두 가지 중요한 변경 사항이 있습니다. 먼저 모델에서 얻은 정책을 정책 정보로 UCB 공식을 업데이트하여 선택 단계에 통합합니다. 둘째, 시뮬레이션 단계가 제거되고 신경망에서 얻은 값은 선택 단계에 대한 정책과 함께 역전파에 사용됩니다. 이러한 변화를 통해 게임 방법을 이해하는 모델이 있을 때 몬테카를로 연구 기법이 크게 향상될 수 있습니다.

  • 00:30:00 비디오 "AlphaZero from Scratch – Machine Learning Tutorial"의 이 섹션에서 발표자는 확장 단계에서 가능한 방향으로 석유를 확장하기 위해 약간의 변경을 가합니다. 마디. 그런 다음 화이트보드의 반복 작업을 통해 다색 연구를 적용하는 방법을 보여줍니다. 확장 단계에서는 신경망을 호출하여 정책과 가치를 얻고 노드에 승리 횟수, 방문 횟수 및 정책 정보를 추가하여 새로운 노드를 만듭니다. 그런 다음 역전파 단계에서 값이 역전파됩니다. 발표자는 UCB 공식을 언급하고 방문 횟수가 0인 노드에 대해서는 승리 확률을 계산할 수 없으며, 이는 0으로 나누기 오류를 방지하기 위해 해결해야 한다고 지적합니다.

  • 00:35:00 튜토리얼의 이 섹션에서 발표자는 Monte Carlo 연구 알고리즘 중에 노드를 확장하는 과정을 설명합니다. 이 알고리즘은 게임에서 주어진 상태에 대한 최상의 움직임을 결정하는 데 사용됩니다. 발표자는 노드가 확장되는 방식과 각 하위 노드에 대한 정책 및 값이 계산되는 방식에 대한 예를 안내합니다. 새 자식 노드의 값을 루트 노드로 역전파하는 과정도 설명합니다. 그런 다음 자습서는 빈 상태에서 시작하여 Monte Carlo 연구를 사용하여 자녀의 방문 수 분포를 기반으로 최상의 이동을 결정하는 알고리즘에 의해 게임이 자체적으로 재생되는 셀프 플레이 프로세스를 설명합니다. 루트 노드.

  • 00:40:00 이 섹션에서는 Monte Carlo Tree Search(MCTS)를 사용하여 모델을 교육하는 방법을 살펴봅니다. 목표는 MCTS 분포와 각 상태에 대한 보상을 포함하여 플레이하면서 얻은 모든 정보를 저장하는 것입니다. 보상은 해당 상태의 플레이어에 대한 게임의 최종 결과에 따라 달라집니다. 데이터를 수집한 후에는 정책과 MCTS 분포, 값 V와 최종 보상 Z 사이의 차이를 최소화하는 손실 함수를 사용하여 모델을 훈련하는 데 사용합니다. 역전파를 사용하여 가중치를 업데이트합니다. 모델 세타. 전반적으로 이 프로세스는 모델이 게임 플레이 방법을 더 잘 이해하고 최적화하는 데 도움이 됩니다.

  • 00:45:00 이 섹션에서 기계 학습을 사용하여 처음부터 AlphaZero를 빌드하는 방법에 대한 비디오 자습서는 Jupyter 노트북을 만들고 행 및 열 수와 동작 크기가 있는 간단한 tic-tac-toe 게임을 빌드하는 것으로 시작합니다. . 그런 다음 자습서는 초기 상태, 작업이 수행된 후 다음 상태 및 법적 이동을 가져오는 메서드를 작성합니다. 작업 입력은 NumPy 배열에서 사용할 행 및 열 형식으로 인코딩됩니다. 이 코드는 Connect Four로 확장할 계획과 함께 다양한 환경이나 보드 게임을 해결할 수 있도록 유연하게 작성되었습니다.

  • 00:50:00 이 섹션에서 YouTube 사용자는 이동 후 플레이어가 이겼는지 여부를 확인하는 방법을 작성하고 있습니다. 그들은 이동의 행과 열을 얻은 다음 해당 이동을 한 플레이어를 결정하는 것으로 시작합니다. 그런 다음 np.sum 및 np.diac 메서드를 사용하여 행에 3개, 열에 3개, 대각선이 2개인 tic-tac-toe 게임에서 이길 수 있는 모든 가능한 방법을 확인합니다. 또한 유효한 동작의 합계를 계산하고 0인지 확인하여 무승부를 확인합니다. 마지막으로 get value라는 새 메서드를 만들고 값을 반환하고 게임이 종료된 경우 true를 반환하는 메서드를 종료합니다.

  • 00:55:00 이 섹션에서 저자는 Tic-tac-toe 게임과 플레이어를 변경하는 상대 방법을 작성합니다. 게임을 실행하여 테스트하고 while 루프를 사용합니다. 루프에서 상태와 유효한 동작이 인쇄되고 사용자에게 동작을 입력하라는 메시지가 표시됩니다. 게임은 작업이 유효한지, 게임이 종료되었는지 확인합니다. 게임이 계속되면 플레이어가 뒤집힙니다. 값이 1이면 플레이어가 이기고 무승부이면 인쇄됩니다.

2 부

  • 01:00:00 기계 학습을 사용하여 처음부터 AlphaZero를 구축하는 방법에 대한 튜토리얼의 이 섹션에서 강사는 시연 목적으로 사용할 게임으로 tic-tac-toe를 선택하는 것으로 시작합니다. 멀티 컬러 연구(MCTS)를 위한 새 클래스가 생성되어 게임 및 하이퍼 매개 변수를 인수로 초기화합니다. 이 클래스 내에서 검색 방법은 선택, 확장, 시뮬레이션 및 역전파 단계의 반복 반복을 위한 루프로 정의되며 궁극적으로 루트 노드 자식의 방문 수 분포를 반환합니다. 그런 다음 노드의 클래스는 게임 상태, 부모, 수행한 작업, 자식 및 방문 횟수와 같은 속성으로 정의됩니다. 루트 노드는 게임, 하이퍼 매개변수, 초기 상태, 부모 및 수행된 작업 자리 표시자에 대한 없음으로 정의됩니다.

  • 01:05:00 이 섹션에서는 비디오가 AlphaZero 알고리즘에서 게임 플레이 중에 트리에서 노드를 선택하는 과정을 안내합니다. 노드가 완전히 확장되었는지 여부를 판단하는 방법은 확장 가능한 이동 횟수와 노드가 종료되지 않았는지에 대한 정보를 사용하여 정의됩니다. 선택 단계에서 알고리즘은 노드가 완전히 확장되는 동안 아래쪽을 선택합니다. 선택을 위해 알고리즘은 노드의 모든 자식을 반복하고 각 자식에 대한 UCB 점수를 계산한 다음 가장 높은 UCB 점수를 가진 자식을 선택합니다. UCB 점수는 Q 값, 탐색 또는 활용을 위한 상수 C 및 로그 함수를 사용하여 계산됩니다. Q 값은 아동의 방문 합계를 방문 횟수로 나눈 값으로 정의되며 Q 값이 0과 1 사이의 범위에 있도록 조정됩니다.

  • 01:10:00 이 섹션에서 비디오 자습서는 AlphaZero의 선택 프로세스를 다룹니다. 코드는 상대를 나쁜 상황에 놓이게 하는 선택으로 매우 부정적이거나 낮은 값을 가진 자식을 선택합니다. 그런 다음 자식의 Q 값이 반전되어 부모에게 거의 1에 가까운 Q 값을 제공합니다. 이렇게 하면 자식이 나쁜 위치에 있는 방식으로 트리가 작동됩니다. 비디오는 코드에서 이러한 변경 사항을 구현하는 단계를 살펴보고 최종적으로 선택된 노드가 터미널 1인지 여부를 확인하는 것의 중요성을 설명합니다. 또한 get value 속성에서 게임의 관점을 설명하기 위해 새로운 메서드가 추가되었습니다.

  • 01:15:00 기계 학습을 사용하여 처음부터 AlphaZero를 구축하는 방법에 대한 자습서의 이 섹션에서 강사는 노드가 터미널인지 확인하고 역전파하고 확장 및 시뮬레이션을 수행하는 방법을 설명합니다. 정의된 것 중 하나의 확장 가능한 이동을 샘플링하여 자식에 대한 새 상태가 생성되고 나중에 select 메서드 내에서 참조할 수 있도록 자식 목록에 새 노드가 추가됩니다. 또한 강사는 플레이어를 명시적으로 정의하지 않고 플레이어를 변경하기 위해 상태를 뒤집는 아이디어에 대해 논의하여 한 플레이어 게임에 대한 논리를 더 단순하게 만들고 코드가 유효한지 확인합니다.

  • 01:20:00 이 섹션에서 화자는 Tic-Tac-Toe 게임에 대한 자식 노드를 만들고 관점 변경 방법을 설명합니다. 그들은 상대방에 대해 플레이어를 -1로 설정하고 곱셈을 사용하여 관점을 뒤집습니다. 자식 노드를 만든 후 자식 목록에 추가하고 반환합니다. 그런 다음 스피커는 터미널 노드에 도달하고 값을 얻을 때까지 롤아웃을 사용하여 임의 작업을 수행하는 시뮬레이션 프로세스에 대해 논의합니다. 그들은 얻은 값을 사용하여 노드의 플레이어가 더 유망한 노드를 역전파합니다.

  • 01:25:00 비디오의 이 섹션에서 발표자는 AlphaZero 게임 플레이 프로그램을 위한 MCTS(Monte Carlo Tree Search) 알고리즘을 계속 구축합니다. 현재 원시 상태를 사용하여 작업을 선택하고 다음 상태를 가져오고 해당 상태가 터미널인지 확인하는 방법을 보여줍니다. 프리젠터는 if 문을 작성하여 플레이어 1 또는 플레이어 2가 게임에서 이겼을 때 양수 값을 받는 것을 구별한 다음 역전파 방법을 작성하여 각 노드의 값과 방문 횟수를 업데이트합니다. 마지막으로 발표자는 가장 유망한 행동인 action_props의 확률을 계산하는 변수를 만듭니다.

  • 01:30:00 이 섹션에서 비디오 자습서는 Tic-tac-toe 게임에 대한 독립 실행형 Monte Carlo Tree Search(MCTS) 알고리즘을 구현하는 방법을 보여줍니다. 튜토리얼은 모든 자식을 반복하고 각 자식에 대한 작업 소품을 작성하는 방법을 보여줍니다. 각 어린이의 방문 횟수는 확률로 변환하는 데 사용됩니다. 그런 다음 확률의 합을 1로 나누어 확률로 변환합니다. 그런 다음 MCTS 객체가 생성되고 UCB 공식의 C 값에 2의 제곱근이 사용됩니다. 스크립트는 게임에 대해 테스트되고 알고리즘은 중립 상태에서 테스트됩니다. MCTS 트리는 최고의 자식 함수와 함께 가장 많이 방문한 자식을 반환하는 데 사용됩니다.

  • 01:35:00 이 섹션에서는 AlphaZero 알고리즘의 신경망 아키텍처에 대해 설명합니다. 신경망에 대한 입력으로 주어진 상태는 플레이어 긍정적 1, 플레이어 부정적 1 및 빈 필드에 대해 세 가지 다른 평면으로 인코딩된 보드 위치입니다. 이 인코딩을 통해 패턴을 인식하고 게임 방법을 이해할 수 있습니다. 사용된 신경망 아키텍처는 초기 X 값을 저장하고 컨벌루션 블록의 출력과 초기 X 값의 합으로 출력을 제공하는 스킵 연결이 있는 잔차 네트워크입니다. 모델은 정책 헤드와 가치 헤드의 두 부분으로 나뉘며 tic-tac-toe의 경우 정책 헤드에는 각 잠재적 조치에 대해 하나씩 총 9개의 뉴런이 있습니다.

  • 01:40:00 이 섹션에서 발표자는 AlphaZero 신경망의 아키텍처를 처음부터 설명합니다. 네트워크에는 두 개의 "헤드"가 있습니다. 하나는 정책용이고 다른 하나는 가치용입니다. 정책 헤드에는 9개의 뉴런이 있으며 출력은 특정 작업이 얼마나 유망한지를 나타내는 확률 분포로 변환하기 위해 소프트 맥스 기능으로 적용됩니다. 값 머리에는 하나의 뉴런만 있고 10h 활성화 함수를 사용하여 모든 잠재적 값을 음수 1에서 양수 1의 범위로 압축하여 현재 상태가 얼마나 좋은지 추정합니다. 이 코드는 PyTorch 딥 러닝 프레임워크를 사용하여 Jupyter 노트북 내부에 빌드됩니다. 이 모델에는 시작 블록과 컨볼루션 잔차 블록의 백본이 포함되며, 각 블록에는 컨볼루션 레이어와 두 레이어의 배치 정규화 및 ReLU 활성화 함수가 있습니다.

  • 01:45:00 이 섹션에서 발표자는 conf 2D 블록, 배치 놈 블록 및 값 블록 생성과 관련된 AlphaZero 모델의 시작 블록 생성에 대해 논의합니다. 또한 나머지 블록 배열을 사용하여 모델의 백본을 설정하고 나머지 블록에 대한 클래스를 만듭니다. 나머지 블록은 건너뛴 연결을 사용하여 입력을 업데이트하는 데 사용되는 conf 블록, 배치 규범 블록 및 다른 conf 블록으로 구성됩니다. 전달 방법은 conf 블록을 통해 입력을 공급하고 결과 출력을 잔차에 추가하도록 정의됩니다.

  • 01:50:00 이 섹션에서 화자는 AlphaZero 알고리즘에 대한 잔차 네트워크(ResNet)를 처음부터 생성하기 위한 코드를 살펴봅니다. 그들은 숨겨진 레이어의 지정된 수에 대한 잔차 블록을 반복하여 ResNet의 백본을 만드는 방법을 보여줍니다. 그런 다음 nn.sequential을 사용하고 시퀀스의 레이어를 정의하여 정책 헤드와 값 헤드를 생성합니다. 마지막으로 발표자는 시작 블록을 통해 입력을 전달하고 잔차 블록을 반복하고 끝에서 합계를 반환하여 ResNet 클래스에 대한 순방향 방법을 정의하는 방법을 보여줍니다.

  • 01:55:00 이 섹션에서 발표자는 AlphaZero 모델을 사용하여 Tic-Tac-Toe에서 주어진 상태에 대한 정책 및 값을 얻는 방법을 설명합니다. 그는 모델을 통해 텐서 상태를 전달하여 정책과 값을 가져오는 코드를 작성한 다음 정책을 평면화하고 값 항목을 가져옵니다. 그는 또한 올바른 형식으로 상태를 인코딩하고 텐서에 배치 차원을 추가하는 것의 중요성을 설명합니다.

파트 3

  • 02:00:00 이 섹션에서 화자는 점 항목 방법을 사용하여 정책 텐서를 부동 소수점으로 변환한 다음 softmax 함수를 적용하여 확률이 가장 높은 작업을 선택하는 방법을 보여줍니다. 그런 다음 발표자는 Matplotlib를 사용하여 정책 배포를 시각화하여 재생할 위치를 보여줍니다. 다음으로 화자는 재현성을 보장하기 위해 Torch의 시드를 설정하고 리프 노드의 상태를 기반으로 값과 정책을 예측하기 위한 ResNet 모델 입력을 제공하여 MCTS 알고리즘을 업데이트합니다. 시뮬레이션 부분을 제거하고 모델에서 얻은 값을 역전파에 사용합니다.

  • 02:05:00 비디오의 이 섹션에서 발표자는 tic-tac-toe 게임의 노드 상태를 인코딩하고 이를 모델에 입력으로 제공하기 위해 torch.tensor를 사용하여 텐서로 전환하는 방법을 보여줍니다. 로짓으로 구성된 정책은 torch.softmax를 사용하여 우도 분포로 전환되어야 합니다. 발표자는 또한 정책 및 유효한 이동을 사용하여 불법 이동을 가리는 방법과 백분율을 나타내도록 정책을 재조정하는 방법을 설명합니다. 값은 value.item()을 호출하여 값 헤드에서 추출됩니다. 또한 발표자는 노드가 리프 노드인 경우 확장을 위한 정책과 역전파 값을 사용하는 방법을 보여줍니다.

  • 02:10:00 기계 학습을 사용하여 처음부터 AlphaZero를 구축하는 방법에 대한 비디오 자습서 섹션에서 연사는 확장 및 UCB 수식 방법을 업데이트하는 방법을 설명합니다. 확장 방법은 가능한 모든 방향으로 즉시 확장하고 선택 중에 UCB 공식에서 나중에 사용할 수 있도록 노드 개체 내부에 확률을 저장하도록 업데이트되었습니다. 새로운 UCB 공식은 표준 다색 연구와 다른 공식을 사용하며 발표자는 math.log를 제거하고 자녀의 방문 횟수에 1을 추가하는 방법을 보여줍니다. 이러한 업데이트를 통해 이전에 방문한 적이 없는 어린이에게 UCB 방법을 사용할 수 있습니다.

  • 02:15:00 이 섹션에서 강사는 동작 선택에 대한 아동 권한 정책으로 MCTS를 업데이트하고 게임을 실행하여 테스트합니다. 그런 다음 모델, 옵티마이저, 게임 및 기타 인수를 받아들이는 AlphaZero 클래스를 정의하여 기본 AlphaZero 알고리즘을 구축하는 단계로 이동합니다. 또한 셀프 플레이 및 교육 방법을 정의하고 재생, 데이터 수집, 모델 교육 및 다시 테스트의 여러 주기를 반복하는 루프를 만듭니다. 강사는 또한 훈련 데이터를 저장하기 위한 메모리 클래스를 생성하고 훈련 주기에서 각 셀프 플레이 게임을 반복합니다.

  • 02:20:00 비디오 자습서의 이 섹션에서 발표자는 AlphaZero의 셀프 플레이 및 교육 루프에 대한 코드를 살펴봅니다. 셀프 플레이 방식에서 얻은 새로운 데이터를 메모리 목록으로 확장하는 방법과 모델의 모드를 평가 모드로 변경하여 플레이 중에 배치 노브를 피하는 방법을 다룹니다. 학습 루프는 또한 학습 방법을 호출하고 모델의 가중치를 저장하는 방법에 대해 자세히 설명합니다. 마지막으로 셀프 플레이 방법에 대해 설명합니다. 새 메모리 정의, 초기 상태 만들기, 게임 플레이를 반복하면서 종료 상태를 확인하고 튜플 형식으로 데이터를 메모리에 반환합니다.

  • 02:25:00 이 섹션에서 비디오 자습서는 나중에 교육 데이터를 수집하는 데 사용하기 위해 중립 상태, 동작 소품 및 플레이어 정보를 메모리에 저장하는 방법을 안내합니다. 튜토리얼은 NumPy의 random.choice 함수를 사용하여 액션 소품에서 액션을 샘플링한 다음 이 액션을 기반으로 재생하는 방법을 보여줍니다. 비디오는 또한 상태가 종료되었는지 여부를 확인하는 방법과 종료된 경우 플레이어가 플레이한 각 인스턴스에 대한 최종 결과를 반환하는 방법을 설명합니다. 마지막으로 자습서에서는 중립 상태, 작업 소품 및 결과를 메모리 변수에 추가하는 방법과 나중에 교육을 위해 이 데이터를 검색하는 방법을 보여줍니다.

  • 02:30:00 "AlphaZero from Scratch" 튜토리얼의 이 섹션에서는 다른 게임에 대해 상대가 인식하는 값으로 음수 값을 변경하여 코드를 더 일반적으로 만들기 위해 업데이트했습니다. 루프의 시각화는 tqdm 패키지 및 진행 경로를 사용하여 개선되었습니다. AlphaZero의 구현은 resnet 모델, Adam 옵티마이저 및 특정 인수를 사용하여 클래스의 인스턴스를 생성하여 테스트됩니다. Tic-Tac-Toe 게임은 4개의 휴식 블록과 64의 숨겨진 차원을 가진 예로 사용됩니다. 탐색 상수, 검색 횟수, 반복, 셀프 플레이 게임 및 에포크가 설정되고 나중에 사용할 수 있도록 모델이 저장됩니다. .

  • 02:35:00 튜토리얼의 이 섹션에서 교육 방법은 교육 데이터를 섞고 모든 메모리를 배치로 반복하여 교육을 위한 다양한 샘플 배치를 샘플링하여 AlphaZero 구현 내에서 구현됩니다. 상태, MCTS 소품 및 최종 보상은 튜플 목록을 MP 배열 목록으로 바꾸는 zip 메서드를 호출하여 샘플에서 가져옵니다. 그런 다음 이들은 NP 배열로 변경되고 값 목표는 모델의 출력과 더 잘 비교할 수 있도록 각 값이 자체 하위 배열에 있도록 재구성됩니다.

  • 02:40:00 튜토리얼의 이 섹션에서 비디오 제작자는 다음을 통해 모델에서 out 정책 및 out 값을 가져오기 위해 torch.float32를 사용하여 상태, 정책 대상 및 값 대상을 텐서로 전환하는 방법에 대해 설명합니다. 상태를 예측할 수 있습니다. 그들은 역전파를 통한 전체 손실을 최소화하기 위해 두 손실의 합을 계산하는 데 사용하는 정책 손실 및 가치 손실을 정의합니다. 그런 다음 교육 프로세스의 반복을 보여주는 진행률 표시줄과 함께 기본 배치 크기 64를 사용하여 교육 프로세스를 시연합니다. 모델을 3회 반복 학습한 후 정적 모델을 로드하여 신경망이 게임에 대해 학습한 내용을 테스트합니다.

  • 02:45:00 비디오 자습서의 이 섹션에서 발표자는 신경망 모델을 사용하여 게임을 플레이하고 이동할 위치를 예측하는 기능을 테스트하는 방법을 시연합니다. MCTS 검색에서 시뮬레이션을 실행함으로써 모델은 주어진 상태에 대한 값 예측 및 재생 위치의 분포를 제공할 수 있습니다. 프리젠터는 또한 알고리즘에 GPU 지원을 추가하여 교육 및 테스트 중에 더 빠르게 만듭니다. 발표자는 사용 가능한 경우 Nvidia GPU를 사용하기 위해 장치를 선언하고 인수로 모델에 전달하는 방법을 보여줍니다. 또한 속도 최적화를 위해 셀프 플레이 및 훈련 중에 모델을 장치로 이동합니다.

  • 02:50:00 이 섹션에서 발표자는 성능을 향상시키기 위해 AlphaZero에 추가할 수 있는 몇 가지 조정에 대해 설명합니다. 먼저 모델에 가중치 감쇠 및 GPU 지원을 추가합니다. 다음으로 온도의 개념을 도입하여 작업을 샘플링할 때 보다 유연한 확률 분포를 허용합니다. 더 높은 온도는 더 많은 탐사로 이어지고 낮은 온도는 더 많은 착취로 이어집니다. 마지막으로 발표자는 Monte Carlo 연구 중에 루트 노드에 주어진 초기 정책에 노이즈를 추가할 것을 제안합니다. 이러한 조정은 AlphaZero 알고리즘의 결과를 크게 향상시킬 수 있습니다.

  • 02:55:00 기계 학습을 통해 AlphaZero를 처음부터 구축하는 방법에 대한 튜토리얼의 이 섹션에서는 루트 노드에 노이즈를 추가하여 임의성을 통합하고 더 많은 것을 탐색하는 동시에 유망한 작업이 누락되지 않도록 하는 데 중점을 둡니다. 이것은 먼저 save.model을 호출하고 torch.tensor와 상태에 대한 모델의 장치를 사용하여 정책과 값을 얻음으로써 수행됩니다. 그런 다음 소프트맥스를 사용하여 정책을 조정하고 불법적인 움직임을 가리기 위해 유효한 움직임을 곱합니다. 기존 정책에 1보다 작은 계수를 곱하고 이 계수에 임의 잡음을 곱한 다른 계수를 더하여 Dirichlet 임의 잡음을 정책에 추가합니다. 이렇게 하면 특히 모델이 게임에 대해 많이 알지 못하는 초기에 더 많은 탐색을 허용하도록 정책이 변경됩니다.

파트 4

  • 03:00:00 이 섹션에서 비디오 자습서는 노이즈 요소를 사용하여 정책에 탐색을 추가하는 데 중점을 둡니다. 정책을 수정함으로써 봇은 탐색을 늘려 자주 선택되지 않은 작업의 우선 순위를 지정할 수 있습니다. 비디오는 정책에 대한 방정식을 조정하고 Alpha 값을 NP dot random dot dirichlet 함수에 대한 입력으로 사용하는 방법을 설명합니다. 환경에 따라 변화. 루트 노드 확장 정책도 설명되어 확장 시 노드가 역전파(방문 횟수가 1로 설정됨)되어 사전에 Monte Carlo 연구 시작 시 자식 선택에 동의하도록 합니다.

  • 03:05:00 튜토리얼의 이 섹션에서 강사는 Connect Four와 같은 더 복잡한 게임에서 모델을 교육하기 위해 CPU 및 GPU 지원을 추가합니다. 그들은 torch.device()를 사용하여 장치를 정의하고 CPU 또는 CUDA 장치를 사용할지 여부를 결정하기 위해 torch.cuda.is_available()을 확인합니다. 또한 장치를 텐서 상태 스택과 정적 파일 로드에 추가합니다. 강사는 Tic-Tac-Toe에서 모델을 훈련 및 테스트하고 모델이 불법 동작을 인식하는 방법을 학습했음을 보여줍니다. 그런 다음 행 수, 열 수 및 작업 크기로 Connect Four 게임을 정의합니다.

  • 03:10:00 이 섹션에서는 비디오 튜토리얼이 Connect Four 게임을 만들기 위해 소스 코드를 업데이트하는 과정을 안내합니다. 이 게임은 승리하는 데 필요한 돌의 수에 대해 4개의 행 변수에 빈 배열과 저장된 점으로 초기화됩니다. get next state 메서드는 주어진 열을 보고 돌을 배치할 해당 열에서 가장 깊은 빈 필드를 찾아 행을 검색하도록 업데이트되었습니다. 유효한 이동 가져오기 방법이 업데이트되어 사용 가능한 이동에 대한 맨 위 행을 확인합니다. 승리 확인 방법은 Tic Tac Toe 게임에서 두 대각선을 모두 확인하도록 조정하여 복사하고 다음 상태 가져오기 방법은 열 변수 대신 작업 변수를 사용하도록 업데이트되었습니다. 업데이트된 코드는 작동하는지 확인하기 위해 테스트됩니다.

  • 03:15:00 이 섹션에서 화자는 Tic-tac-toe를 Connect Four 게임으로 대체하고 확인을 위해 검색 횟수를 20으로 설정합니다. 모델의 크기도 모델이 더 잘 학습할 수 있도록 나머지 블록의 수는 9로, 숨겨진 희미함은 128로 변경했습니다. 그런 다음 교육의 효율성이 높아져 복잡한 환경에서 시간이 덜 걸립니다. 그런 다음 모델은 몇 시간이 걸리는 한 번의 반복을 위해 훈련됩니다. 그런 다음 평가 세트를 사용하여 모델이 무언가를 학습했는지 여부를 테스트합니다.

  • 03:20:00 튜토리얼의 이 섹션에서는 병렬화를 통해 AlphaZero 구현의 효율성을 높이는 데 중점을 둡니다. 계획은 정책 및 가치에 대한 병렬 예측을 얻기 위해 상태를 일괄 처리하여 가능한 한 많은 구현을 병렬화하는 것입니다. 이렇게 하면 모델 호출 횟수가 대폭 줄어들어 GPU 용량을 최대한 활용하고 속도를 높일 수 있습니다. 튜토리얼에서는 Ray와 같은 패키지를 사용하지 않고 Python을 사용하여 병렬화된 버전을 구현하는 방법을 설명하고 원본 클래스를 복사하여 "AlphaZeroParallel" 및 "MCTSParallel"이라는 새 클래스를 만듭니다.

  • 03:25:00 이 섹션에서 발표자는 Python에서 두 가지 새로운 클래스 생성에 대해 논의합니다. 셀프 플레이 게임에 대한 정보를 저장하는 'SPG'와 다음을 사용하여 'save_play' 및 'search' 메서드를 구현하는 'ParallelMCD' 새로운 `SPG` 클래스. `SPG` 클래스는 게임의 초기 상태, 빈 메모리 목록, `None`으로 설정된 `root` 및 `note` 변수를 저장합니다. `ParallelMCD` 클래스는 `set_play` 메소드를 업데이트하여 `game`과 병렬 게임 수를 입력으로 사용하여 `SPG` 인스턴스 목록을 생성합니다. 그러면 `while` 루프는 모든 셀프 플레이 게임이 끝날 때까지 `set_play` 메서드를 실행하여 효율적인 병렬화를 허용합니다.

  • 03:30:00 이 섹션에서 발표자는 모든 상태 목록을 가져오고 이를 숫자 배열로 변환하여 효율성을 높이는 방법을 설명합니다. 또한 하나의 함수 호출을 사용하여 음수 1로 설정된 플레이어에 대해 값을 음수 1로 곱하여 모든 상태에 대한 관점을 변경하는 방법을 보여줍니다. 다음으로 발표자는 중립 상태를 Monte Carlo 연구에 전달하는 방법, Monte Carlo 연구 검색 방법을 업데이트하는 방법 및 모든 배치 상태를 사용하여 비디오에 대한 정책을 가져오는 방법을 시연합니다. 마지막으로 인코딩된 상태 가져오기 메서드를 호출할 때 하나가 아닌 여러 상태에서 작동하도록 인코딩된 상태의 순서를 바꾸는 방법과 이 프로세스를 tic-tac-toe 게임에 복사하는 방법을 설명합니다.

  • 03:35:00 이것은 numpy 배열로 루프하고 numpy의 벡터화를 대신 사용합니다. 그런 다음 각 상태를 반복할 필요 없이 numpy 배열의 모든 상태에 모델을 적용할 수 있으므로 많은 시간이 절약됩니다. 그런 다음 출력을 다시 원래 형식으로 재구성하고 평소와 같이 나머지 MCTS 검색을 진행할 수 있습니다. 마지막으로 각 셀프 플레이 게임의 통계를 업데이트하고 선택한 작업의 루트 노드를 반환합니다. 이것으로 AlphaZero 알고리즘을 사용하여 정책 및 가치 네트워크로 MCTS 검색 구현을 완료합니다.

  • 03:40:00 비디오의 이 섹션에서 강사는 SPG 수업 대신 확장 가능한 모든 노드를 저장하도록 코드를 일부 변경합니다. 그런 다음 세이프 플레이 게임을 저장할 목록을 만들고 각 세이프 플레이 게임에 대한 매핑 인덱스를 가져와 어떤 세이프 플레이 게임이 확장 가능한지 확인하는 것으로 초점이 이동합니다. 강사는 확장 가능한 게임이 있는지 확인하고, 있다면 나중에 정책과 가치를 얻을 수 있도록 상태를 쌓아 인코딩합니다.

  • 03:45:00 튜토리얼의 이 섹션에서 강사는 AlphaZero에 대한 Monte Carlo Tree Search 알고리즘의 코드 구현을 설명합니다. 그들은 확장 가능한 상태를 사용하는 방법을 보여주고 노이즈를 풀거나 짜거나 추가할 필요가 없으며 정책을 가져오기 위한 인덱스를 만들고 셀프 플레이 게임 인덱스에서 정책을 할당하기 위한 인덱스를 매핑합니다. SPG 정책을 사용하여 노드를 확장하고 SPG 도트 값을 사용하여 역전파한 다음 OSF Planet 방법을 사용하는 대신 작업 소품을 얻습니다. 강사는 AlphaZero에 대한 몬테카를로 트리 검색 알고리즘 구현의 일환으로 병렬화 코드를 복사하고 OSF Planet 방법 대신 작업 소품으로 작업하도록 변경합니다.

  • 03:50:00 이 섹션에서 비디오 자습서는 MCTS 검색의 병렬 구현을 위한 코드 업데이트에 중점을 둡니다. 강사는 'SPG 클래스' 대신 'spg.state'를 호출하여 종료되고 상태를 업데이트하는 경우 목록에서 셀프 플레이 게임을 제거하는 것이 중요하다고 강조합니다. 모든 셀프 플레이 게임이 완료된 후 메모리를 일반 지역 메모리에 추가하고 플레이어를 뒤집도록 코드도 변경되었습니다. 목표는 효율적으로 작동하고 적절한 시간에 셀프 플레이 게임 목록에서 원을 제거하는 부드러운 루프를 만드는 것입니다.

  • 03:55:00 이 섹션에서 발표자는 병렬화된 fs0 구현을 사용하여 Connect Four에 대한 모델 교육에 대해 설명합니다. 이 모델은 8회 반복 학습되며 Connect Four 보드를 사용하여 결과를 평가합니다. 화자는 실제로 사용되는 다른 검색 알고리즘과 비교할 때 검색 횟수가 매우 적지만 결과는 만족스럽다고 말합니다. 그들은 모델과 대결하고 약간의 움직임을 보이며 모델은 그에 따라 반응합니다. 전반적으로 교육에 몇 시간이 걸렸지만 최종 모델은 게임 방법을 잘 이해하고 있습니다.
  • 04:00:00 튜토리얼의 이 섹션에서 발표자는 Kegel 환경 패키지를 사용하여 Connect Four 환경을 만들고 두 에이전트와 함께 게임을 플레이하는 방법을 시연합니다. 에이전트는 MCTS 검색 알고리즘을 사용하여 훈련된 AlphaZero 모델을 기반으로 예측합니다. 프리젠터는 또한 fs03에 온도 동작 소품을 통합하고 일반 옵티마이저 대신 save.optimizer를 사용하는 등 코드를 약간 수정합니다. 또한 프리젠터는 온도를 0으로 설정하여 항상 정책의 아크 최대값을 얻고 반사 엡실론을 1로 설정하여 게임에 임의성을 추가합니다. 마지막으로 발표자는 플레이어 1을 훈련된 모델을 기반으로 예측하기 위해 MCTS 알고리즘을 사용하는 계산된 에이전트로 정의합니다.

  • 04:05:00 "AlphaZero from Scratch - Machine Learning Tutorial"의 이 섹션에서 화자는 플레이어 1과 플레이어 2에 대한 코드를 작성하여 게임과 인수를 모델링하여 다른 플레이어를 시도할 수 있는 더 많은 유연성을 제공합니다. 그런 다음 셀을 실행하고 서로 대항하는 모델의 시각화를 얻습니다. 그 결과 모델이 모든 공격을 방어할 수 있으므로 무승부가 되었습니다. 그들은 또한 게임과 인수를 변경하고 경로를 업데이트하여 Tic-tac-toe의 코드를 수정하는 방법을 시연했으며, 이로 인해 모델이 서로 대결하여 다시 무승부가 되었습니다. 튜토리얼이 완료되었고 발표자는 각 체크포인트에 대한 jupyter 노트북이 포함된 GitHub 저장소와 Tic-tac-toe 및 Connect Four에 대한 마지막 모델이 포함된 weights 폴더를 제공했습니다. 화자는 관심이 있다면 뮤 제로 후속 영상도 해보고 싶다는 뜻을 밝혔다.
 

ChatGPT에 대한 Google 패닉 [AI 전쟁이 시작되었습니다]



ChatGPT에 대한 Google 패닉 [AI 전쟁이 시작되었습니다]

이 동영상은 Google이 챗봇이 더욱 강력해질 가능성에 대비하는 방법과 이것이 비즈니스 모델에 어떤 영향을 미칠 수 있는지에 대해 설명합니다. Microsoft는 사용자가 보다 인간적인 방식으로 Bing과 통신할 수 있는 챗봇을 개발하고 있는 것으로 알려졌으며 이 기능은 현재 이미지가 존재하지 않는 검색에 유용할 것입니다. Microsoft는 이 기능이 명시적이거나 부적절한 시각적 개체를 생성하지 않도록 개방형 AI와 긴밀히 협력하고 있다고 밝혔습니다. 따라서 Bing이 채팅 GPT 및 Dali 2 기능을 통합하여 대대적인 점검을 받는 것처럼 보입니다.

  • 00:00:00 Google은 1998년에 다른 집 옆에 있는 집을 임대하고 있었습니다. 탁구대는 다른 집에 있었다.

  • 00:05:00 동영상은 Google이 챗봇이 더욱 강력해질 가능성에 대해 어떻게 우려하는지, 그리고 이것이 어떻게 그들의 비즈니스 모델을 손상시킬 수 있는지에 대해 논의합니다. 소문에 따르면 Google은 이 문제를 해결하기 위한 계획을 세우고 있으며 공동 창립자인 Larry Page와 Sergey Brin은 이 문제를 논의하기 위해 회의에 초대되었습니다.

  • 00:10:00 이 비디오에서 Google은 Microsoft와 경쟁 관계에 있는 것으로 보입니다. Microsoft는 개방형 AI에 추가로 100억 달러를 투자하고 있기 때문입니다. 그러나 이것은 실제로 시작할 기회를 갖기 전에 AI의 죽음으로 이어질 수 있기 때문에 개방형 AI 운동의 최선의 이익이 아닐 수 있습니다. 구글은 또한 20개의 AI 프로젝트를 진행하고 있는 것으로 알려졌으며, 그 중 일부는 채팅 GPT와 유사하여 Microsoft가 회사에 3억 달러를 투자하게 되었습니다. 이것이 어떻게 될지는 불확실하지만, 구글은 안전 문제를 뒤로 미루고 AI 제품을 내놓을 수밖에 없을 것 같습니다.

  • 00:15:00 비디오는 Microsoft가 사용자가 보다 인간적인 방식으로 Bing과 통신할 수 있는 챗봇을 개발하고 있다는 소문에 대해 이야기합니다. 또한 이 기능은 이미지가 현재 존재하지 않는 검색에 유용할 것이라고 언급합니다. 마지막으로 비디오에서는 이 통합을 통해 사용자가 텍스트를 입력하고 이미지를 생성할 수 있는 방법에 대해 설명합니다. 이는 현재 이미지가 없는 검색에 특히 유용합니다. Microsoft는 이 기능이 명시적이거나 부적절한 시각적 개체를 생성하지 않도록 개방형 AI와 긴밀히 협력하고 있다고 밝혔습니다. 따라서 Bing이 채팅 GPT 및 Dali 2 기능을 통합하여 대대적인 점검을 받는 것처럼 보입니다. 출시되면 모든 사람의 관심을 끌 것입니다.
사유: