Bài giảng Trí tuệ nhân tạo: Bài 15 Mạng thần kinh nhân tạo cung cấp cho người học những kiến thức như: Mạng các perceptron; Học sâu (deep learning); Mạng tích chập (CNN); Bộ tự mã hóa (autoencoder); Bắt đầu với học sâu như thế nào?. Mời các bạn cùng tham khảo!
TRÍ TUỆ NHÂN TẠO Bài 15: Mạng thần kinh nhân tạo (2) Nội dung Mạng perceptron Học sâu (deep learning) Mạng tích chập (CNN) Bộ tự mã hóa (autoencoder) Bắt đầu với học sâu nào? TRƯƠNG XUÂN NAM Phần Mạng perceptron TRƯƠNG XUÂN NAM Sức mạnh perception Một perception mạnh cổng logic Ví dụ perception dùng hàm kích hoạt hardlim, đầu vào, w1 = 1, w2 = Chọn b = -1.5 ta cổng AND Chọn b = -0.5 ta cổng OR x1 x1 x2 x2 1 1 x -1 x1+ x2 x1+ x2 -x b=-1.5 b=-0.5 b=0.5 y y = x1 AND x2 y y = x1 OR x2 TRƯƠNG XUÂN NAM y y = NOT x Hạn chế perceptron Khơng giải tốn XOR TRƯƠNG XUÂN NAM Mạng perceptron Các perceptron kết nối với thành mạng lưới mô luật logic TRƯƠNG XUÂN NAM Mạng perceptron Đặc tính xấp xỉ vạn năng: mạng neural nhân tạo lớp ẩn xấp xỉ hàm số liên tục Huấn luyện: lan truyền ngược lỗi TRƯƠNG XUÂN NAM Bản chất việc huấn luyện Lỗi = hàm đánh giá Huấn luyện cực tiểu hóa hàm số Ý tưởng: ngược hướng đạo hàm Gradient descent Stochastic gradient descent Minibatch gradient descent TRƯƠNG XUÂN NAM Phần Học sâu TRƯƠNG XUÂN NAM Học sâu Bản chất ANN có nhiều lớp Tại ngày trước không nghĩ đến? Quy mô mạng lớn: ANN có 1000 đầu vào, lớp ẩn 500 nút, 10 đầu có 2,5 tỉ tham số Quy mơ mạng lớn địi hỏi cơng suất tính tốn lớn Sự suy giảm q nhanh gradient thuật toán tập huấn Điều chỉnh: Kiến trúc mạng Thuật toán huấn luyện Ý đồ thiết kế lớp TRƯƠNG XUÂN NAM 10 Convolutional Neural Networks CNN sử dụng ý tưởng để điều chỉnh ANN: LRF (local receptive fields) Chia sẻ trọng số lớp (shared weights) Pooling TRƯƠNG XUÂN NAM 13 LRF (local receptive fields) Thay kết nối đầy đủ lớp mạng liên tiếp, neural lớp sau kết nối với vùng lớp trước (gọi vùng LRF neural đó) Trượt LRF qua tồn lớp trước tạo thành lớp sau TRƯƠNG XUÂN NAM 14 LRF (local receptive fields) Nếu ảnh cỡ 28x28 vùng LRF cỡ 5x5 lớp phía sau ma trận perception cỡ 24x24 Mục đích LRF: giảm số tham số mạng hình thành tầng features ảnh TRƯƠNG XUÂN NAM 15 Chia sẻ trọng số lớp Tất neural thuộc lớp dùng chung trọng số bias Như ví dụ trước, tất 24x24 neural dùng chung ma trận trọng số W hệ số b (bias) Như output neural (j,k) Việc chia sẻ trọng số đảm bảo tất features tầng xử lý Tăng tốc độ tính tốn trường hợp sử dụng phép toán ma trận GPU TRƯƠNG XUÂN NAM 16 Pooling Tầng pooling nên để sau tầng convolution Ánh xạ vùng lớp trước thành neural lớp sau hàm giản đơn (ví dụ: hàm max, hàm average,…) TRƯƠNG XUÂN NAM 17 Pooling Lớp pooling cho phép giải vấn đề sai lệch (nhỏ) feature Giảm kích cỡ mạng Chú ý: max pooling tốt TRƯƠNG XUÂN NAM 18 Các tầng khác Các lớp sau mạng thường lớp ANN thông thường, kết nối đầy đủ Riêng lớp cuối softmax toán loại phân lớp xác suất TRƯƠNG XUÂN NAM 19 Alex-net Có model pre-trained sẵn, tải để sử dụng vào mục đích khác TRƯƠNG XUÂN NAM 20 Phần Bộ tự mã hóa (autoencoder) TRƯƠNG XUÂN NAM 21 Bộ tự mã hóa TRƯƠNG XUÂN NAM 22 Bộ tự mã hóa Các layer h, h’ h’’ thực chất mã hóa liệu đầu vào Nói cách khác, hệ thống tự ánh xạ mẫu không gian n chiều đầu vào sang khơng gian có số chiều tùy chọn Kĩ thuật cho phép giảm số chiều cách hiệu TRƯƠNG XUÂN NAM 23 Phần Bắt đầu với học sâu nào? TRƯƠNG XUÂN NAM 24 Tìm hiểu Học hiểu thứ giấy Hoạt động mạng: truyền thẳng (feed forward), tái phát (recurrent),… Các thuật toán tập huấn: back-propagation, SGD,… Ý nghĩa siêu tham số Các kĩ thuật hiệu chỉnh mạng (khó) Đừng cố lập trình Rất phức tạp Rất dễ sai khó phát Tốn nhiều thời gian Không tái sử dụng Trực quan: https://playground.tensorflow.org TRƯƠNG XUÂN NAM 25 Lập trình Sử dụng framework có sẵn Mỗi framework có hay dở riêng Chọn phù hợp với khả lập trình Khơng cầu tồn, sau thời gian thấy khơng hợp chuyển qua khác • Dữ liệu chia sẻ framework • Chỉ phải lập trình lại Hầu hết sử dụng python, tài liệu Đề xuất: Theano (python) TensorFlow (python) TRƯƠNG XN NAM 26 Lập trình Nếu khơng dùng python cân nhắc: Caffe (C++) CNTK (C#) Torch (Lua) Deeplearning4j (java) Chú ý: ngoại trừ Theano viết python, framework khác chủ yếu viết C++ Nên bắt đầu với toán cụ thể đủ nhỏ, chẳng hạn MNIST Iris Có GPU: tăng tốc độ huấn luyện gấp nhiều lần TRƯƠNG XUÂN NAM 27 ... b = -0 .5 ta cổng OR x1 x1 x2 x2 1 1 x -1 x1+ x2 x1+ x2 -x b =-1 .5 b =-0 .5 b=0.5 y y = x1 AND x2 y y = x1 OR x2 TRƯƠNG XUÂN NAM y y = NOT x Hạn chế perceptron Khơng giải tốn XOR TRƯƠNG XN NAM. .. trúc mạng Thuật toán huấn luyện Ý đồ thiết kế lớp TRƯƠNG XUÂN NAM 10 Học sâu TRƯƠNG XUÂN NAM 11 Phần Mạng tích chập (CNN) TRƯƠNG XUÂN NAM 12 Convolutional Neural Networks CNN sử dụng ý tưởng... pre-trained sẵn, tải để sử dụng vào mục đích khác TRƯƠNG XUÂN NAM 20 Phần Bộ tự mã hóa (autoencoder) TRƯƠNG XUÂN NAM 21 Bộ tự mã hóa TRƯƠNG XUÂN NAM 22 Bộ tự mã hóa Các layer h, h’ h’’ thực chất