Activation Functions in AlphaGo
Hàm kích hoạt trong AlphaGo
Công ty nào đang ứng dụng Hàm kích hoạt?
DeepMind · 3/2016 · Seoul
AlphaGo thắng Lee Sedol 4 – 1
Cờ vây được coi là thành trì cuối cùng của trí tuệ con người trước máy tính. Một bàn cờ 19×19 có hơn 10 mũ 170 thế cờ, nhiều hơn số nguyên tử trong vũ trụ. Không cỗ máy nào duyệt hết được. AlphaGo không duyệt; nó cảm nhận bằng hàng triệu nơ-ron phối hợp qua 13 tầng, mỗi tầng có một hàm kích hoạt.
Trong một nước đi, AlphaGo đọc cả bàn cờ, chạy qua 12 tầng ẩn có ReLU, rồi để softmax phân bổ 100% xác suất cho 361 ô. Từ đó nó chọn ra một vài ô nóng để cây tìm kiếm Monte Carlo đào sâu. Không có ReLU, 13 tầng sụp thành một đường thẳng. Không có softmax, AI không biết mỗi nước đi đáng tin bao nhiêu.
Vấn đề công ty cần giải quyết
Bàn cờ vây là một đại dương không gian thế cờ. Một chương trình chơi cờ vua cũ có thể duyệt tới độ sâu 10 nước, với cờ vua mỗi nước có khoảng 35 lựa chọn. Với cờ vây, mỗi nước có khoảng 250 lựa chọn, ván dài 150 nước. Số tổ hợp vượt mọi khả năng tính toán.
Đặc điểm 1
361 ô, 10 mũ 170 thế cờ. Không thể duyệt.
Đặc điểm 2
Đánh giá thế cờ cần “cảm”, không chỉ đếm điểm.
Đặc điểm 3
Phần thưởng chỉ hiện ở cuối ván, nên mạng phải học lâu.
DeepMind giải bằng cách xếp hai mạng nơ-ron tích chập sâu 13 tầng: một mạng đề xuất nước đi (policy network), một mạng đánh giá thế cờ (value network). Nhưng 13 tầng chỉ có ý nghĩa khi gradient truyền ngược được qua hết, mà gradient chỉ truyền được khi mỗi tầng không bị sập về tuyến tính và không bị bóp nghẹt về 0. Đây là lúc hàm kích hoạt vào cuộc.
Cách Hàm kích hoạt giải quyết vấn đề
Mã hoá bàn cờ. Bàn cờ 19×19 được biến thành một khối số 19×19×48: 48 kênh mô tả quân đen, quân trắng, lịch sử 8 nước gần nhất, số khí của mỗi nhóm quân, tuổi của từng viên đá và thông tin lượt đi. Đây là đầu vào mà cả hai mạng cùng nhìn.
Bên trong mạng chính sách: 13 tầng nối nhau
Input 19×19×48ReLUTầng ẩn 1ReLUTầng ẩn 2ReLUTầng ẩn 3ReLUTầng ẩn 4ReLUTầng ẩn 5ReLUTầng ẩn 6ReLUTầng ẩn 7ReLUTầng ẩn 8ReLUTầng ẩn 9ReLUTầng ẩn 10ReLUTầng ẩn 11ReLUTầng ẩn 12Tầng 13: đầu raSoftmax qua 361 ô12 tầng ẩn ở giữa đều dùng ReLU, cắt vuông ở 0 để gradient không bị triệt tiêu khi học qua hàng triệu ván đánh. Lớp cuối cho 361 điểm số thô, rồi softmax biến chúng thành xác suất chọn từng ô trên bàn cờ 19×19. Ô nào xác suất cao nhất sẽ được xem xét trước khi cây tìm kiếm chạy tiếp.
Mạng chính sách: 12 tầng ReLU. Đầu vào chạy qua tầng đầu với bộ lọc 5×5, rồi 11 tầng tích chập 3×3. Sau mỗi tầng là một hàm kích hoạt ReLU: ai âm thành 0, ai dương giữ nguyên. Tại sao phải ReLU chứ không phải sigmoid? Vì ReLU cho gradient bằng 1 ở vùng dương, nên tín hiệu học lan ngược qua 12 tầng mà không bị nén. Nếu dùng sigmoid, mỗi tầng nhân gradient với tối đa 0,25, sau 12 tầng còn chưa tới 10 mũ âm 7.
ReLU rẻ, nhanh, và giữ được gradient qua 12 tầngReLU là quyết định thiết kế quan trọng nhất ở lớp ẩn. Nó rẻ (chỉ một phép so sánh), nhanh trên GPU, và không giết gradient. Nhờ vậy, AlphaGo huấn luyện được trên 30 triệu ván đánh của chuyên gia.Softmax ở đầu ra: biến điểm thô thành xác suất. Tầng cuối cho 361 điểm số thô, một cho mỗi ô trên bàn. Nhưng điểm thô không dùng được, có thể số âm, có thể số to bất thường. Softmax biến tất cả thành 361 xác suất cộng bằng 100%. Ô nào xác suất cao, đó là nước AlphaGo nghĩ tới đầu tiên.
Bấm một ô trên bàn cờ để xem mạng chính sách nghĩ gì
Vòng đỏ đậm = nước AlphaGo thật sự chọn. Vệt đỏ mờ = xác suất softmax cho các ô khác. Bấm bất kỳ ô nào để xem chú thích bên phải.
Câu chuyện
Tới trung cuộc, hai nhóm quân tiếp xúc. Mạng chính sách dồn phần lớn xác suất vào các điểm cắt và điểm khí, nơi một nước sai lệch có thể đổi hoàn toàn cục diện.
Bấm vào một điểm bất kỳ trên bàn cờ. Bạn sẽ thấy mạng chính sách của AlphaGo giải thích vì sao nó coi ô đó quan trọng hay không.Top 6 nước có xác suất cao nhất
Tổng softmax qua 361 ô = 100%1J11· Cắt cặp trắng, tạo hai nhóm yếu45.0%2K8· Vươn khí cho nhóm đen22.0%3M9· Áp sát nhóm trắng bên phải14.0%4H9· Chạy nối với quân đen bên trái9.0%5K12· Chặn trên, chia hai nhóm trắng6.0%6L7· Tạo hình mới, không chắc chắn4.0%Mạng giá trị: thêm tanh ở đầu ra. Song song với mạng chính sách, một mạng khác cùng kiến trúc (13 tầng, ReLU ở giữa) được huấn luyện để trả lời câu hỏi khác: từ thế cờ hiện tại, bên đang đi có cơ hội thắng bao nhiêu?Đầu ra là một nơ-ron duy nhất với hàm kích hoạt tanh, cho số trong khoảng từ −1 (thua chắc) tới +1 (thắng chắc). Tại sao tanh chứ không phải sigmoid? Vì tanh đối xứng quanh 0, nên “hoà” nằm ở giữa và gradient dễ học hơn.
Hợp nhất với cây tìm kiếm. Hàng triệu nơ-ron phối hợp qua ReLU ở lớp ẩn và softmax ở đầu ra giúp AlphaGo thu hẹp không gian tìm kiếm: từ 250 lựa chọn mỗi nước xuống chỉ còn 5 đến 10 ứng viên đáng để đào sâu. Cây Monte Carlo lấy các xác suất đó làm điểm khởi đầu, mô phỏng vài vạn ván nháp, rồi chọn nước tốt nhất. Không có ReLU, không có softmax, toàn bộ quy trình này sụp đổ.
Vì sao AlphaGo dùng softmax chứ không phải sigmoid ở tầng cuối của mạng chính sách?
Nước 37 của AlphaGo: ván 2, 10/3/2016
Đây là khoảnh khắc nổi tiếng nhất lịch sử cờ vây máy tính. Lee Sedol đang cầm đen, AlphaGo cầm trắng. Đến nước thứ 37, AlphaGo bất ngờ đánh vai thứ năm. Đó là một nước mà bình luận viên Michael Redmond 9-đẳng sau này gọi là “không ai trong số chúng tôi nghĩ đến, nhưng khi máy đánh rồi, bạn nhận ra nó rất đẹp”.
Sau 36 nước, hai bên đã xây dựng thế trận. Các kỳ thủ hàng đầu thường chọn lối đánh ổn định ở đường 4 để bảo toàn đất. AlphaGo đứng trước lựa chọn: theo sách vở, hay đi một nước khác lạ.
Bạn đang thiết kế phiên bản AlphaGo cho cờ tướng Việt (bàn 10×9 = 90 ô). Nên dùng hàm gì ở tầng cuối của mạng chính sách?
Gradient đi qua 13 tầng ra sao?
Dùng ReLU, tín hiệu đi gần như nguyên vẹn qua 13 tầng. Mạng học được đặc trưng phức tạp từ hàng triệu ván cờ.
Con số thật
- Mạng chính sách dự đoán nước đi chuyên gia với độ chính xác 57,0%, hơn xa mọi hệ thống trước đó [1]
- AlphaGo thắng 99,8% khi đấu với các chương trình cờ vây khác trong bài kiểm tra nội bộ [1]
- Thắng Lee Sedol (9 đẳng) 4-1 vào tháng 3/2016: lần đầu AI hạ kỳ thủ cờ vây chuyên nghiệp [3]
- AlphaGo Zero (2017) dùng kiến trúc tương tự, tự học từ số 0, đánh bại phiên bản gốc 100-0 [2]
Nếu không có Hàm kích hoạt, app sẽ ra sao?
Nếu kiến trúc viên của DeepMind chọn sai hàm kích hoạt ở hai vị trí then chốt, câu chuyện AlphaGo sẽ kết thúc trước khi kịp bắt đầu:
- Nếu 12 tầng ẩn dùng sigmoid thay cho ReLU: gradient nhân với tối đa 0,25 ở mỗi tầng. Sau 12 tầng, tín hiệu học co về khoảng 10 mũ âm 8, nên mạng gần như không cập nhật được các tầng đầu. AlphaGo sẽ không thể học được đặc trưng bàn cờ phức tạp.
- Nếu bỏ hẳn hàm kích hoạt: 13 tầng nhân ma trận tuần tự sụp về đúng một phép biến đổi tuyến tính. AI chơi cờ vây bằng đường thẳng, không phân biệt được nhóm quân chiến đấu với một vùng đất rộng.
- Nếu thay softmax bằng sigmoidở tầng cuối: mỗi ô cho xác suất độc lập, tổng có thể là 50 hoặc 200, không biểu diễn được “chọn một trong 361 ô”. Cây tìm kiếm Monte Carlo mất điểm khởi đầu, phải mò trong không gian khổng lồ.
- AlphaGo dùng hai mạng nơ-ron tích chập 13 tầng: một policy network để chọn nước, một value network để ước lượng cơ hội thắng.
- 12 tầng ẩn đều có ReLU. Gradient đi qua nguyên vẹn ở vùng dương, giúp mạng học được từ 30 triệu ván cờ.
- Tầng cuối của policy network là softmax trên 361 ô. Nó cho xác suất chọn mỗi nước, tổng bằng 1.
- Tầng cuối của value network là tanh. Nó cho số từ −1 (thua chắc) tới +1 (thắng chắc), đối xứng quanh 0.
- Nước 37 ván 2 vs Lee Sedol là minh chứng: năm đường cong nhỏ phối hợp tạo ra sáng tạo mà con người chưa từng thấy.