Hoạt động của mạng như sau: tại lớp đầu vào các nơron nhận tín hiệu vào xử lý tính tổng trọng số, gửi tới hàm truyền rồi cho ra kết quả là kết quả của hàm truyền; kết quả này sẽ được tru
Trang 1LỜI CAM ĐOAN
Tôi – Nguyễn Thị Thanh, học viên lớp cao học 13BCNTT2 Trường Đại học Bách khoa Hà Nội cam kết: Luận văn tốt nghiệp là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Nguyễn Hồng Quang – Viện Công nghệ Thông tin và Truyền thông- Đại học Bách khoa Hà Nội Các kết quả trong luận văn tốt nghiệp là trung thực, không sao chép toàn văn của bất kỳ công trình nào khác
Hà Nội, ngày 25 tháng 10 năm 2016
Học viên: Nguyễn Thị Thanh
Lớp: 13BCNTT2
Trang 2LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc tới Thầy giáo, TS Nguyễn Hồng Quang –
Bộ môn Kỹ thuật Máy tính – Viện Công nghệ Thông tin và Truyền thông – Đại học Bách Khoa Hà Nội, người thầy đã hết lòng giúp đỡ, dạy bảo, động viên và tạo mọi điều kiện thuận lợi cho tôi trong suốt quá trình học tập và hoàn thành luận văn tốt nghiệp
Tôi xin chân thành cảm ơn tập thể các Thầy, Cô giáo trường Đại học Bách khoa Hà Nội nói chung và Viện Công nghệ Thông tin và Truyền thông nói riêng đã tận tình giảng dạy truyền đạt cho tôi những kiến thức, kinh nghiệm quý báu trong suốt thời gian học tập tại trường
Trang 3MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ vii
DANH MỤC CÁC BẢNG ix
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ x
MỞ ĐẦU 1
Chương I CƠ SỞ LÝ THUYẾT 4
1 1 Tổng quan về mạng Nơ ron sâu 4
1.1.1 Mô tả Nơ–ron sinh học [16] 4
1.1.2 Mạng Nơ–ron nhân tạo (ANN) 5
1.1.2.1 Cấu trúc mạng Nơ ron nhân tạo 5
1.1.2.2 Mạng được phân lớp 6
1.1.2.3 Ứng dụng của mạng Nơ ron nhân tạo 8
1.1.3 Lĩnh vực học sâu 8
1.1.3.1 Perceptrons: Thuật toán học sâu sơ khai 8
1.1.3.2 Mạng Nơ ron truyền thẳng cho việc học sâu 12
1.1.3.3 Một số khái niệm chính về học sâu [17] 21
1.1.3.4 Lịch sử lĩnh vực học sâu 23
1.1.3.5 Học sâu trong mạng Nơ ron nhân tạo [16] 26
1.1.3.6 Các kiến trúc học sâu 29
1.1.4 Mạng Nơ ron sâu 29
1.1.4.1 Tổng quan về mạng Nơ ron sâu 29
Trang 41.1.4.2 Mạng nơ ron sâu cho mô hình âm học trong nhận dạng tiếng nói[12]29
1.1.4.3 Huấn luyện mạng Nơ ron sâu [13] 31
1.2 Hệ thống nhận dạng tiếng nói [20] 36
1.2.1 Cấu trúc của một hệ thống nhận dạng tiếng nói 37
1.2.2 Phân loại hệ thống nhận dạng tiếng nói 38
1.2.3 Các phương pháp nhận dạng tiếng nói 39
1.2.4 Các ứng dụng của nhận dạng tiếng nói 41
Chương II PHƯƠNG PHÁP THỰC HIỆN VÀ CÔNG CỤ SỬ DỤNG 42
2.1 Phương pháp thực hiện đề tài 42
2.2 Kỹ thuật trích chọn đặc trưng MFCC [3] 42
2.3 Mô hình GMM 46
2.4 Bộ công cụ nhận dạng tiếng nói Kaldi [2] 47
2.4.1 Giới thiệu 47
2.4.2 Cấu trúc bộ công cụ Kaldi [4] 49
2.5 Ngôn ngữ lập trình Shell 51
2.6 Ngôn ngữ lập trình Perl 52
2.7 Ngôn ngữ lập trình Python 52
Chương III NHẬN DẠNG TIẾNG VIỆT NÓI TRÊN NỀN BỘ CÔNG CỤ KALDI TÍCH HỢP MẠNG NƠ RON SÂU 54
3.1 Các bước thực hiện xây dựng hệ thống nhận dạng tiếng nói trên nền bộ công cụ Kaldi 54
3.2 Chuẩn bị dữ liệu 55
3.2.1 Thu âm tiếng nói 55
3.2.2 Chuẩn bị dữ liệu văn bản 56
Trang 53.2.3 Một số quy tắc 57
3.2.4 Xây dựng các âm vị và tạo từ điển phát âm cho hệ thống nhận dạng 58
3.3 Bộ công cụ nhận dạng tiếng nói Kaldi [2] 63
3.3.1 Thự hiện download và cài đặt 63
3.3.2 Mô hình thư mục làm việc trong Kaldi 64
3.3.3 Mô hình hệ thống nhận dạng tiếng Việt nói với bộ công cụ Kaldi 65
3.3.4 Mạng Nơ ron sâu trong Kaldi [14] 66
3.3.4.1 Mô hình âm học với DNN 66
3.3.4.2 Công thức DNN 67
3.3.5 Mô hình GMM 68
3.4 Huấn luyện mô hình âm học 68
3.4.1 Kịch bản mô hình âm học 68
3.4.2 Chuẩn bị thư mục 70
3.4.3 Tạo mô hình ngôn ngữ 72
3.4.4.Tạo các tập tin cho lang_prep/local/dict và lang_prep/local/lang 72
3.4.5 Tạo các tập tin cho lang_prep/lang 75
3.4.6 Thiết lập huấn luyện song song 75
3.4.7 Tạo tập tin mfcc.conf trong thư mục common 76
3.4.8 Trích chọn tham số MFCC 77
3.4.9 Sắp xếp và huấn luyện Monophone 77
3.4.10 Sắp xếp và huấn luyện Triphone (Tri1) 79
3.4.11 Huấn luyện với mạng nơ ron sâu (tri4_DNN) 81
3.5 Xây dựng đồ thị giải mã [10] 81
3.6 Giải mã [11] 83
Trang 63.7 Tính WER và SER 86
CHƯƠNG IV KẾT QUẢ THỬ NGHIỆM 88
4.1 Kết quả thực hiện với các mô hình huấn luyện 88
4.2 Kết quả thực hiện với các trọng số mô hình ngôn ngữ khác nhau 89
KẾT LUẬN 90
TÀI LIỆU THAM KHẢO 92
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
AI Artificial Intelligence Trí tuệ nhận tạo
ANN Artificial Neural Network Mạng nơ ron nhân tạo
ASR Automatic Speech Recognition Nhận dạng tiếng nói tự động BLAS Basic Linear Algebra
CNN Convolutional Neural Network Mạng nơ ron sâu chập
DBN Deep belief network Mạng Belief sâu
DNN Deep Neural Network Mạng nơ ron sâu
DTW Dynamic Time Warping So sánh thời gian động
EM Expectation Maximization Tối ưu hóa kỳ vọng
FST Finite State Transducers Bộ dò trạng thái hữu hạn
GMM Gaussian Mixture Models Mô hình Gauss hỗn hợp
ICDAR International Conference on
Document Analysis and Recognition
Hội nghị quốc tế về phân tích tài liệu và nhận dạng
LAPACK Linear Algebra PACKage Thư viện gói đại số tuyến tính LDA Linear Discriminant Analysis Phân tích biệt thức tuyến tính
LMW Language Model Weight Trọng số mô hình ngôn ngữ LSTM Long Short Term Memory Mạng bộ nhớ tạm
Trang 8Từ viết tắt Tên đầy đủ Nghĩa tiếng Việt
MFCC Mel Frequency Ceptral
Coeficients
Các hệ số Cepstral theo thang đo tần số Mel
MMI Maximum Mutual Information Thông tin tương hỗ tối đa
MPE Minimum Phone Error Lỗi âm vị tối thiểu
OOV Out Of Vocabulary Word Các từ ngoài bộ từ vựng
PLP Peceptual Linear Prediction Dự báo tiên đoán tuyến tính RBM Restricted Boltzman Machines Máy Boltzman giới hạn
SAT Speaker Adaptive Training Huấn luyện thích nghi người nói SER Sentence Error Rate Tỷ lệ lỗi nhận dạng câu
SGD Stochastic Gradient Descent Gradient descent ngẫu nhiên VIQR VIetnamese Quoted-Readable Quy ước để viết chữ tiếng Việt
dùng bảng mã ASCII 7 bit WER Word Error Rate Tỷ lệ lỗi nhận dạng từ
WST Word System Table Bảng ký tự của các từ
Trang 9DANH MỤC CÁC BẢNG
Bảng 3.1: Cơ sở dữ liệu tiếng Việt nói 56
Bảng 3.2: Cách biểu diễn dấu và thanh điệu tiếng Việt có sử dụng VIQR 57
Bảng 3.3: Chuyển đổi thanh điệu và dấu mũ của chữ cái 58
Bảng 3.4: Danh sách các âm vị là nguyên âm 61
Bảng 3.5: Danh sách âm vị là phụ âm 61
Bảng 3.6: Danh sách các từ trong từ điển 62
Bảng 3.7: Các phương thức huấn luyện của hệ thống 70
Bảng 4.1: Wer và Ser cho các phương pháp huấn luyện 88
Bảng 4.2: Bảng kết quả với các trọng số mô hình ngôn ngữ khác nhau 89
Trang 10DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1.1: Mạng Nơ ron sinh học 5
Hình 1.2: Cấu trúc của một Nơ ron nhân tạo 5
Hình 1.3: Mạng được phân lớp 7
Hình 1.4: Perceptron 9
Hình 1.5: Một mạng các Perceptrons 9
Hình 1.6: Phân lớp các điểm đã được gán nhãn 10
Hình 1.7: Mạng truyền thẳng 12
Hình 1.8: Đồ thị lỗi huấn luyện 14
Hình 1.9: Autoencoder 16
Hình 1.10: Restricted Boltzmann Machines 17
Hình 1.11: Autoencoder được xếp chồng 19
Hình 1.12: Mạng Belief sâu 20
Hình 1.13: Cấu trúc hệ thống nhận dạng tiếng nói 37
Hình 2.1: Các bước trích chọn đặt trưng MFCC 43
Hình 2.2: Lấy cửa sổ (windowing) 44
Hình 2.3: Hàm mật độ Gauss 46
Hình 2.4: Hàm mật độ xác suất của mô hình GMM 47
Hình 2.5: Cấu trúc bộ công cụ Kaldi 49
Hình 3.1: Các bước thực hiện xây dựng hệ thống nhận dạng tiếng nói trên nền bộ công cụ Kaldi 54
Hình 3.2: Phần mềm hỗ trợ ghi âm 55
Hình 3.3: Chuyển đổi giữa UTF-8 và VIQR dùng Unikey 57
Hình 3.4: Âm vị phụ âm 59
Hình 3.5: Âm vị nguyên âm 60
Hình 3.6: Thư mục làm việc trong Kaldi 65
Hình 3.7: Mô hình nhận dạng tiếng nói với bộ công cụ Kaldi 66
Hình 3.8: Hệ thống phân cấp các mô hình âm học được huấn luyện 70
Hình 4.1 Biểu đồ WER thể hiện qua các mô hình huấn luyện 89
Hình 4.2 Biểu đồ WER với các tham số LMW khác nhau 90
Trang 11Hiện nay đã có nhiều nghiên cứu cho thấy sự vượt bậc của mạng Nơ ron sâu:
- Các nghiên cứu gần đây đã ứng dụng thành công kiến trúc mạng Nơ ron sâu trong mô hình ngôn ngữ
- Ứng dụng mạng Nơ ron sâu vào nhận dạng tiếng nói bộ từ vựng lớn với bộ dữ liệu lớn hơn bất kỳ hệ thống nào trước đây
- Công ty Google hiện đang sử dụng các mạng Nơ ron để nhận dạng tiếng nói cải thiện được 20-25% độ chính xác
Trong luận văn này, bộ công cụ Kaldi được chọn vì có ưu điểm chính là hiện đại, linh hoạt, mã nguồn được cấu trúc rõ ràng Và hơn thế nữa, Kaldi cho chất lượng nhận dạng cao hơn các bộ công cụ nhận dạng tiếng nói khác như HTK, Sphinx hay Alize…
Kết quả từ các thí nghiệm của các nhà khoa học cho thấy Kaldi chạy nhanh hơn
so với tất cả các bộ công cụ nhận dạng khác Kaldi huấn luyện và giải mã theo kỹ thuật đường ống bao gồm các kỹ thuật cao cấp nhất, điều này cho phép hệ thống đạt kết quả tốt nhất trong thời gian ngắn Thời gian cho việc thiết lập, chuẩn bị, chạy và tối ưu hóa cho các bộ công cụ lớn nhất với HTK, ít hơn là Sphinx và ít nhất là Kaldi
Bộ công cụ nhận dạng họ Sphinx (PocketSphinx và Sphinx-4) không bao gồm tất cả các kỹ thuật tích hợp trong một như Kaldi HTK là bộ công cụ khó nhất, mặc dù các kết quả thu được tương tự với Sphinx, tuy nhiên thiết lập hệ thống cần tốn thời gian
So sánh với các bộ nhận dạng khác, hiệu năng vượt trội của Kaldi được xem như là cuộc cách mạng trong công nghệ nhận dạng tiếng nói mã nguồn mở
Trang 12Hiện tại đã có một số nghiên cứu về nhận dạng tiếng Việt nói, tuy nhiên đa phần mới chỉ sử dụng bộ công cụ HTK Do vậy mục tiêu nghiên cứu của luận văn là xây dựng bộ công cụ nhận dạng tiếng Việt nói sử dụng bộ công cụ Kaldi có tích hợp mạng
nơ ron sâu, thử nghiệm các kỹ thuật tiên tiến trong Kaldi để đánh giá khả năng của Kaldi với tiếng Việt
Nhu cầu về thử nghiệm phương pháp nhận dạng tiếng Việt nói sử dụng mạng
Nơ ron sâu đã trở nên cấp bách và cần thiết
Mục đích, phạm vi nghiên cứu
- Nghiên cứu về mạng Nơ ron sâu và lĩnh vực học sâu (Deep Learning)
- Nghiên cứu về nguyên lý và các thành phần của một hệ thống nhận dạng tiếng nói và ứng dụng vào nhận dạng tiếng Việt nói
- Xây dựng chương trình nhận dạng tiếng Việt nói có tích hợp mạng Nơ ron sâu
- Kiểm tra và đánh giá hiệu suất nhận dạng của hệ thống
Đối tượng nghiên cứu
- Nghiên cứu, tìm hiểu lý thuyết và ứng dụng của mạng Nơ-ron sâu
- Nghiên cứu, tìm hiểu về bộ công cụ nhận dạng tiếng nói Kaldi
- Nghiên cứu, xây dựng hệ thống nhận dạng tiếng Việt nói trên nền bộ công cụ Kaldi có tích hợp mạng nơ ron sâu
Phương pháp nghiên cứu
- Nghiên cứu lý thuyết về nhận dạng tiếng nói
- Nghiêm cứu về máy học và mạng nơ ron sâu trong nhận dạng tiếng nói
- Nghiên cứu sử dụng bộ công cụ Kaldi, ngôn ngữ lập trình Python trên môi trường Linux trong nhận dạng tiếng nói
- Thử nghiệm nhận dạng tiếng Việt nói trên nền bộ công cụ Kaldi có tích hợp mạng nơ ron sâu với số lượng 35 người nói, 4375 câu nói
Nhiệm vụ nghiên cứu
- Tìm hiểu về hệ thống nhận dạng tiếng nói
- Tìm hiểu phương pháp trích chọn các tham số đặc trưng cần thiết cho bài toán nhận dạng tiếng nói
Trang 13- Tìm hiểu về mô hình GMM và hoạt động của bộ công cụ Kaldi, các gói thư viện, ngôn ngữ lập trình Python
- Xây dựng thử nghiệm hệ thống nhận dạng tiếng Việt nói trên nền bộ công cụ Kaldi có tích hợp mạng nơ ron sâu
- Thử nghiệm hệ thống với cơ sở dữ liệu tiếng Việt Trên cơ sở kết quả thử nghiệm phân tích đánh giá hệ thống
Trang 14Chương I
CƠ SỞ LÝ THUYẾT
1 1 Tổng quan về mạng Nơ ron sâu
Bộ não con người bao gồm khoảng 1011 Nơ ron tham gia vào khoảng 1015 kết nối trên các đường truyền Mỗi đường truyền này dài khoảng hơn một mét Các Nơ ron có khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường Nơ-ron, các con đường này tạo nên hệ thống giao tiếp của bộ não
Cấu tạo của nơ ron sinh học được thể hiện trong hình 1.1 Mỗi Nơ ron sinh học có 3 thành phần cơ bản: Các nhánh vào hình cây (dendrites); thân tế bào (cell body); sợi trục ra (axon) Các nhánh hình cây truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp và xử lý cho tín hiệu đi ra Sợi trục truyền tín hiệu ra từ thân tế bào này sang Nơ ron khác Điểm liên kết giữa sợi trục của Nơ ron này với nhánh hình cây của Nơ ron khác gọi là synapse Liên kết giữa các Nơ ron và độ nhạy của mỗi synapse được xác định bởi quá trình hóa học phức tạp Một số cấu trúc của Nơ ron được xác định trước lúc sinh ra Một số cấu trúc được phát triển thông qua quá trình học
Nơ ron sinh học hoạt động theo cách thức: nhận tín hiệu đầu vào, xử lý các tín hiệu này và cho ra một tín hiệu output Tín hiệu output này sau đó được truyền đi làm tín hiệu đầu vào cho các Nơ ron khác Dựa trên những hiểu biết về Nơ ron sinh học, con người xây dựng Nơ ron nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não
Trang 15Hình 1.1: Mạng Nơ ron sinh học
1.1.2 Mạng Nơ–ron nhân tạo (ANN)
1.1.2.1 Cấu trúc mạng Nơ ron nhân tạo
Mạng Nơ ron nhân tạo mô phỏng các Nơ ron sinh học Một Nơ ron là một đơn
vị xử lý thông tin và là thành phần cơ bản của một mạng Nơ-ron Cấu trúc của một
Nơ ron được mô tả trên hình 1.2
Axon
Terminal Branches
of AxonDendrites
Hình 1.2: Cấu trúc của một Nơ ron nhân tạo
Các thành phần cơ bản của một Nơ ron nhân tạo bao gồm:
Trang 16Tập các đầu vào: Là các tín hiệu vào của Nơ ron (x1, x2, … xn), các tín hiệu này thường được đưa vào dưới dạng một vector N chiều
Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số
liên kết – Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j với Nơ ron k thường được kí hiệu là wkj Thông thường, các trọng số (w1, w2, … wn) này được khởi tạo ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng
Bộ tổng (Summing function): Được dùng để tính tổng của tích các đầu vào với
trọng số liên kết của nó
Ngưỡng (độ lệch - bias): Ngưỡng này thường được đưa vào như một thành
phần của hàm truyền
Hàm truyền (Transfer function): Hàm này được dùng để giới hạn phạm vi đầu
ra của mỗi Nơ-ron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm truyền tùy thuộc vào từng bài toán Một số hàm truyền như: Symmetrical Hard Limit (hardlims), Linear (purelin), Saturating Linear (satlin), Log-Sigmoid (logsig)
1.1.2.2 Mạng được phân lớp
Mô hình mạng được phân lớp có n (n≥2) tầng, trong đó gồm một lớp đầu ra (lớp thứ n) và (n-1) lớp ẩn
Trang 17Kiến trúc của một mạng được phân lớp có thể mô tả như sau:
- Đầu vào là các vector (x 1 , x 2 , , x n ) trong không gian n chiều, đầu ra là các
vector (y1, y2, , ym ) trong không gian m chiều Đối với các bài toán phân loại,
n chính là kích thước của mẫu đầu vào, m chính là số lớp cần phân loại
- Mỗi nơron thuộc lớp sau liên kết với tất cả các nơron thuộc lớp liền trước nó
- Đầu ra của nơron lớp trước là đầu vào của nơron thuộc lớp liền sau nó
Hoạt động của mạng như sau: tại lớp đầu vào các nơron nhận tín hiệu vào xử
lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các nơ ron thuộc lớp ẩn thứ nhất; các nơ ron tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến lớp ẩn thứ 2…; quá trình tiếp tục cho đến khi các nơron thuộc lớp ra cho kết quả Kết quả đầu ra được cho bởi công thức sau:
m m i i
i i
i
x w f
x w x
w x w x w f y Output
)(
)(
Trang 181.1.2.3 Ứng dụng của mạng Nơ ron nhân tạo
Ngày nay, mạng Nơ ron ngày càng được ứng dụng nhiều trong thực tế Các ứng dụng mạng Nơ ron ra đời ngày càng nhiều và ngày càng hoàn thiện hơn Điển hình là các ứng dụng: xử lý ngôn ngữ (Language Processing), nhận dạng kí tự (Character Recognition), nhận dạng tiếng nói (Speech Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), Lọc dữ liệu (Data Filtering),…
Ngoài ra, sự hồi sinh này đã được hỗ trợ một phần không nhỏ của xu hướng mới trong trí tuệ nhân tạo (AI), đặc biệt trong lĩnh vực máy học, được biết đến là
“Deep Learning - Học sâu” Sau đây sẽ giới thiệu về khái niệm chính và thuật toán phía sau “Deep Learning”, bắt đầu với các đơn vị/ khối đơn giản nhất của các thành phần và xây dựng các khái niệm máy học
1.1.3.1 Perceptrons: Thuật toán học sâu sơ khai
Perceptron được phát triển những năm 1950 và 1960 bởi nhà nghiên cứu Frank Rosenblatt Ngày nay, nó phổ biến hơn để sử dụng nhiều mô hình khác nhau của nơ ron nhân tạo, mô hình nơ ron chính được sử dụng chỉ có một nơ ron được gọi là nơ ron sigmoid
Các Perceptron làm việc như thế nào?
Một perceptron lấy vài đầu vào nhị phân x1, x2, …, và cho kết quả một đầu ra nhị phân
Trang 19Hình 1.4: Perceptron
Hình 1.4 biểu diễn một perceptron có 3 đầu vào x1, x2, x3, nó có thể có nhiều đầu vào Rosenblatt đã đưa ra một quy tắc đơn giản để tính toán đầu ra Ông đã đưa
ra khái niệm trọng số, w1, w2,…, các số thực thể hiện tầm quan trọng của các đầu
vào tương ứng với đầu ra Đầu ra của nơ ron là 0 hoặc 1, được xác định bởi tổng ∑ j
w j x j là lớn hơn hay nhỏ hơn giá trị ngưỡng (threshold) Ngưỡng là một số thực là một tham số của nơ ron
Đó là tất cả cách thức mà perceptron làm việc Một cách ta có thể nghĩ về perceptron là một thiết bị đưa ra quyết định bằng việc xem xét các căn cứ
Perceptron không là một mô hình phức tạp như con người trong việc đưa ra các quyết định Nhưng perceptron có thể cân nhắc các căn cứ khác nhau để đưa ra quyết định và một mạng phức tạp các perceptron có thể đưa ra các quyết định phù hợp
Hình 1.5: Một mạng các Perceptrons
Trong hình 1.5 biểu diễn một mạng các Perceptron, cột đầu tiên của các perceptron ta sẽ gọi là lớp đầu tiên của các perceptron – tạo nên ba quyết định đơn
Trang 20giản căn cứ vào các đầu vào Còn các perceptron lớp thứ hai, mỗi perceptron đưa ra một quyết định bởi việc cân nhắc kết quả từ các quyết định của lớp thứ nhất Bằng cách này perceptron trong lớp thứ hai có thể đưa ra quyết định ở mức phức tạp hơn, trừu tượng hơn so với lớp đầu tiên Các quyết định phức tạp hơn có thể được đưa ra bởi các perceptron lớp thứ ba Bằng cách này, mạng nhiều lớp hơn của các perceptron
có thể cam kết đưa ra các quyết định phức tạp hơn
Một trong những thuật toán huấn luyện có giám sát sớm nhất là perceptron, một khối xây dựng mạng nơ ron
Chúng ta có n điểm trên mặt phẳng, được gán nhãn “0” và “1” Ta đưa ra một điểm mới và muốn đoán xem nó là nhãn nào Ta phải làm như thế nào?
Một cách tiếp cận là có thể xem xét vào hàng xóm gần nhất và trả lại nhãn của điểm đó Nhưng một cách thông minh hơn một chút là sẽ đặt một đường thẳng tốt nhất để chia rẽ dữ liệu được gán nhãn và sử dụng như phân lớp
Phân lớp tuyến tính
Hình 1.6: Phân lớp các điểm đã được gán nhãn
Trong trường hợp này, mỗi mảnh của dữ liệu vào sẽ được biểu diễn là một
vector x=(x 1 ,x 2 ) và đầu ra sẽ là một giá trị nào đó: là “0” nếu bên dưới đường thẳng,
là “1” nếu bên trên đường thẳng
Trang 21Để biểu diễn toán học cho điều này, bộ chia được định nghĩa bởi vector của
các trọng số w và độ lệch b Kết hợp các đầu vào và trọng số thành một hàm truyền
* Huấn luyện Perceptron
Việc huấn luyện Perceptron bao gồm việc cung cấp nhiều mẫu huấn luyện và tính toán đầu ra cho mỗi mẫu Sau mỗi mẫu, trọng số w được điều chỉnh như là một cách để làm giảm lỗi đầu ra, lỗi đầu ra được định nghĩa là sự khác biệt giữa cái mong muốn (đích cần đạt) với các đầu ra thực tế Có nhiều hàm lỗi khác nhau chẳng hạn như trung bình bình phương lỗi (Mean Square Error), nhưng nguyên tắc cơ bản của huấn luyện vẫn được giữ nguyên
* Nhược điểm của huấn luyện Perceptron đơn
Cách tiếp cận perceptron đơn lẻ để huấn luyện sâu có một nhược điểm là nó chỉ có thể học một hàm tuyến tính riêng rẽ Nhược điểm này như thế nào? Lấy XOR, một hàm tương đối đơn giản, và chú ý rằng nó không thể phân lớp được bởi một bộ phân chia tuyến tính như dưới đây:
XOR
Để giải quyết vấn đề này, chúng ta sẽ cần phải sử dụng một perceptron đa lớp, được biết đến như mạng Nơ ron truyền thẳng: để hiệu quả, ta sẽ gộp một nhóm các perceptron khác nhau để tạo nên một cơ chế mạnh mẽ hơn cho việc học
Trang 221.1.3.2 Mạng Nơ ron truyền thẳng cho việc học sâu
Một mạng Nơ ron thực sự chỉ là một thành phần của perceptron, được kết nối trong các cách khác nhau và hoạt động trên các hàm kích hoạt khác nhau
- Mỗi khối là một pereptron đơn lẻ như đã mô tả ở trên
- Các khối của lớp đầu vào cung cấp đầu vào cho các khối lớp ẩn, trong khi các khối của lớp ẩn là đầu vào của khối lớp đầu ra
- Mỗi kết nối giữa hai Nơ ron có một trọng số w (tương tự các trọng số perceptron)
- Mỗi khối của lớp t thường được kết nối đến tất cả các lớp t-1 trước đó (mặc
dù vậy ta có thể ngắt kết nối chúng bằng cách đặt trọng số của chúng là 0)
- Để xử lý dữ liệu đầu vào, ta “xếp” (clamp) vector đầu vào tới lớp đầu vào, thiết lập các giá trị của các vector như là “đầu ra” cho mỗi khối đầu vào Trong trường hợp này mạng có thể xử lý một vector đầu vào 3 chiều (vì có 3 khối đầu vào) Ví dụ,
Trang 23nếu vector đầu vào là [7, 1, 2], ta sẽ thiết lập đầu ra của đầu vào lần lượt là 7 (đỉnh),
1 ở giữa và 2 ở cuối Các giá trị này sau đó được truyền tiếp tới các khối ẩn sử dụng hàm truyền tổng trọng số cho mỗi khối ẩn, từ đó tính toán đầu ra (hàm kích hoạt)
- Lớp ra tính toán kết quả đầu ra tương tự như lớp ẩn Kết quả của lớp đầu ra
là đầu ra của mạng
* Tuyến tính ngoài (Beyond Linearity)
Điều gì sẽ xảy ra nếu mỗi perceptron chỉ được phép sử dụng một hàm kích hoạt tuyến tính? Sau đó, đầu ra cuối cùng của mạng vẫn sẽ có một số hàm tuyến tính của đầu vào Nói cách khác, một thành phần tuyến tính của một loạt các hàm tuyến tính Nếu ta bị giới hạn các hàm kích hoạt tuyến tính, mạng Nơ ron truyền thẳng sẽ không hiệu quả hơn perceptron, dù nó có bao nhiêu lớp
“Một thành phần tuyến tính của một loạt các hàm tuyến tính chỉ là một hàm tuyến tính, vì vậy hầu hết các mạng Nơ ron sử dụng hàm kích hoạt phi tuyến”
Chính vì điều này, hầu hết các mạng Nơ ron sử dụng các hàm kích hoạt phi tuyến như logistic, tanh, binary hay rectifier Nếu không có chúng mạng chỉ có các hàm học là
sự kết hợp tuyến tính của các đầu vào
* Huấn luyện Perceptron
Hầu hết các thuật toán học sâu phổ biến cho học có giám sát của perceptron
đa lớp được biết đến là giải thuật lan truyền ngược Các thủ tục cơ bản:
1 Một mẫu huấn luyện được biểu diễn và được lan truyền thẳng trên toàn mạng
2 Lỗi đầu ra được tính toán thường là trung bình bình phương lỗi: E = ½ (t - y) 2
3 Ở đây t là giá trị mong muốn đạt được và y là đầu ra thực của mạng
4 Lỗi mạng được cực tiểu hóa sử dụng một phương pháp được gọi là stochastic gradient descent
Trang 24Hình 1.8: Đồ thị lỗi huấn luyện
Giảm Gradient là phổ biến nhưng trong trường hợp của mạng nơ-ron, đây sẽ
là đồ thị của lỗi huấn luyện như một hàm của các tham số đầu vào Tối ưu hóa giá trị
của mỗi trọng số làm cho lỗi đạt tối thiểu toàn cục (global minimum) Trong giai đoạn
huấn luyện, trọng số được cập nhật trong các bước nhỏ (sau mỗi mẫu huấn luyện hoặc một đợt nhỏ của vài mẫu) trong cách mà chúng luôn cố gắng đạt được tối thiểu toàn cục nhưng nó là một nhiệm vụ không dễ dàng, như ta thường kết thúc ở cực tiểu cục
bộ, như một bên phải Ví dụ, nếu trọng số có giá trị là 0.6, nó cần phải được thay đổi đến 0.4
Hình 1.8 thể hiện trường hợp đơn giản nhất, mà trong đó lỗi phụ thuộc vào một tham số duy nhất Tuy nhiên, lỗi mạng phụ thuộc mọi trọng số mạng và hàm lỗi rất nhiều, phức tạp hơn nhiều
Rất may, lan truyền ngược cung cấp một phương pháp để cập nhật mỗi một trọng số giữa hai Nơ ron liên quan đến lỗi đầu ra Nguồn gốc của nó khá phức tạp, nhưng bản cập nhật trọng số cho một node được cho như sau:
∆𝑤𝑖 = −𝛼 𝜕𝐸
𝜕𝑤𝑖
Trong đó E là lỗi đầu ra, và w i là trọng số của đầu vào i tới nơ-ron
Trang 25Về cơ bản, mục tiêu di chuyển theo hướng của Gradient đối với trọng số i Điều kiện quan trọng là bắt nguồn lỗi thường không dễ dàng tính được: bằng cách nào ta có thể tìm được bắt nguồn cho một trọng số ngẫu nhiên của một node ẩn ngẫu nhiên ở giữa của một mạng lớn Câu trả lời là: qua lan truyền ngược Các lỗi được tính toán đầu tiên tại khối đầu ra là nơi mà giải pháp khá đơn giản (dựa trên sự khác nhau giữa giá trị mong đợi và các giá trị dự đoán được), và sau đó được lan truyền ngược qua mạng trong một cách thông minh, cho phép cập nhật hiệu quả trọng số trong quá trình đào tạo và đạt tối thiểu
* Lớp ẩn
Lớp ẩn là sự quan tâm đặc biệt Theo lý thuyết xấp xỉ chung, một mạng một lớp ẩn với một số Nơ ron hữu hạn có thể được huấn luyện để xấp xỉ một hàm ngẫu nhiên tùy ý Nói cách khác, một lớp ẩn đơn là đủ khả năng để học bất kỳ hàm nào Điều đó nói rằng, chúng thường học tốt hơn trong thực tiễn với đa lớp ẩn (như mạng sâu hơn)
“Lớp ẩn là nơi mạng lưu giữ các liên kết trừu tượng của quá trình huấn luyện
dữ liệu”
Lớp ẩn là nơi mạng lưu giữ các liên kết trừu tượng của quá trình huấn luyện
dữ liệu, tương tự như cách mà bộ não con người có sự thể hiện bên trong của thế giới thực
* Vấn đề với các mạng lớn
Một mạng Nơ ron có thể có nhiều lớp ẩn: trong trường hợp này các lớp cao hơn được xây dựng lên đỉnh của các lớp trước Tăng số lượng các lớp ẩn dẫn đến hai vấn đề:
1 Gradient bị triệt tiêu: khi ta thêm nhiều lớp ẩn, lan truyền ngược trở nên ít
hơn và ít hữu ích trong truyền tải thông tin tới các lớp thấp hơn Trong thực tế, khi thông tin được truyền ngược lại, gradient bắt đầu bị triệt tiêu và trở nên nhỏ đối với các trọng số của mạng
2 Overfitting: có lẽ là vấn đề trọng tâm trong máy học Nói một cách ngắn
gọn, overfitting mô tả hiện tượng điều chỉnh (fitting) dữ liệu huấn luyện quá chặt chẽ,
Trang 26có lẽ với các giả thuyết là quá phức tạp Trong trường hợp như vậy, việc học kết thúc điều chỉnh dữ liệu huấn luyện thực sự tốt, nhưng sẽ thực hiện nhiều, kém hơn nhiều trong ví dụ thực tế
Hãy xem một vài thuật toán huấn luyện sâu để giải quyết vấn đề này
* Restricted Boltzmann Machines
Trang 27Các bước logic tiếp theo là quan sát Restricted Boltzmann Machines (RBM), một mạng Nơ ron có khả năng sinh ngẫu nhiên mà có thể học một phân bố xác suất trên tập các đầu vào
Khối nhìn thấy
Khối ẩn RBM
Hình 1.10: Restricted Boltzmann Machines
RBMs được cấu tạo bởi một lớp ẩn, lớp có thể nhìn thấy và lớp phân cực Không giống như mạng truyền thẳng, các kết nối giữa lớp ẩn và lớp có thể nhìn thấy
là vô hướng (các giá trị có thể được truyền theo cả hai hướng từ lớp có thể nhìn thấy đến lớp ẩn và hướng ngược lại) và được kết nối toàn bộ (mỗi khối từ lớp nhất định được kết nối tới mỗi khối trong lớp tiếp theo - nếu ta được phép kết nối bất kỳ khối nào trong bất kỳ lớp nào tới bất kỳ lớp nào, sau đó ta có một máy Boltzmann (đúng hơn là một restricted Boltzmann)
Một RBM chuẩn có khối ẩn nhị phân (binary) và khối có thể nhìn thấy, đó là khối kích hoạt là 0 hoặc 1 theo một phân phối Bernoulli, nhưng có các biến thể với các hàm không tuyến tính khác
Trong khi các nhà nghiên cứu đã biết về RBMs một thời gian trước, giới thiệu gần đây của các thuật toán huấn luyện không giám sát phân kỳ tương phản có sự đổi mới
* Phân kỳ tương phản (contrastive divergence)
Thuật toán phân kỳ tương phản đơn bước (CD-1) hoạt động như sau:
Trang 281 Giai đoạn tích cực (positive)
- Một mẫu đầu vào v được xếp vào lớp đầu vào
- v được lan truyền tới lớp ẩn trong một cách tương tự các mạng truyền thẳng Kết quả của sự hoạt động lớp ẩn là h
2 Giai đoạn ngược (negative)
- Lan truyền h ngược trở lại lớp có thể nhìn thấy với kết quả v’ (sự kết nối giữa lớp ẩn và lớp có thể nhìn thấy là vô hướng và vì vậy cho phép chuyển động trong cả hai hướng)
- Lan truyền v’ mới ngược trở lại lớp ẩn cho kết quả h’
ra gần thế giới thực và điều này được phản ánh trong công thức cập nhật trọng số
Nói cách khác, mạng có một vài sự nhận thức về cách dữ liệu đầu vào có thể được biểu diễn, vì vậy nó cố gắng để tái tạo dữ liệu dựa trên sự nhận thức này Nếu
nó mô phỏng không đủ gần với thực tế, nó sẽ tạo ra một sự điều chỉnh và thử lại lần nữa
* Mạng sâu
Bây giờ ta đã chứng minh các lớp ẩn của autoencoders và RBMs hoạt động như bộ dò các tham số một cách hiệu quả; nhưng khó mà ta có thể sử dụng các tham
số một cách trực tiếp Trong thực tế, tập dữ liệu ở trên nhiều trường hợp ngoại lệ hơn
là quy tắc Thay vào đó, ta cần tìm cách sử dụng các tham số một cách gián tiếp
May mắn thay, đã khám phá ra rằng các cấu trúc có thể xếp chồng lên nhau để tạo thành mạng sâu Mạng này có thể được huấn luyện một cách tham lam (greedily), một lớp tại một thời điểm để giúp khắc phục sự triệt tiêu gradient và overfitting các vấn đề liên quan đến lan truyền ngược cổ điển
Trang 29Cấu trúc kết quả thường khá mạnh mẽ, tạo ra các kết quả ấn tượng Ví dụ, bài báo “cat” nổi tiếng của Google trong đó họ sử dụng loại đặc biệt của autoencoders sâu để “học” phát hiện con người và phát hiện con mèo dựa trên dữ liệu không được gán nhãn
Lớp ẩn của autoencoder t hoạt động như một lớp đầu vào tới autoencoder t+1
Lớp đầu vào của autoencoder đầu tiên là lớp đầu vào của toàn mạng Các tiến trình huấn luyện layer-wise tham lam hoạt động như sau:
1 Huấn luyện autoencoder đầu tiên (t = 1; hoặc các kết nối màu đỏ trong hình
ở trên nhưng thêm lớp đầu ra) riêng biệt sử dụng phương pháp lan truyền ngược với tất cả dữ liệu huyện luyện có sẵn
2 Huấn luyện autoencoder thứ hai t = 2 (các kết nối màu xanh) Từ lớp đầu vào cho t = 2 là lớp ẩn của t = 1 chúng ta không còn quan tâm đến lớp đầu ra của t = 1 và
xóa nó khỏi mạng Việc huấn luyện bắt đầu bằng cách xếp mẫu đầu vào tới lớp đầu
Trang 30vào của t = 1, được lan truyền thẳng tới lớp đầu ra của t = 2 Tiếp theo, các trọng số (đầu vào ẩn và đầu ra ẩn) của t = 2 được cập nhật sử dụng lan truyền ngược t = 2 sử dụng tất cả các mẫu huấn luyện, tương tự tới t = 1
3 Lặp lại tiến trình trước cho tất cả các lớp (tức là xóa lớp đầu ra của autoencoder trước, thay nó bằng autoencoder khác, và huấn luyện với lan truyền ngược)
4 Các bước từ 1 đến 3 được gọi là tiền huấn luyện (pre-training) và để lại các trọng số được khởi tạo chính xác Tuy nhiên không có ánh xạ giữa dữ liệu đầu vào và các nhãn đầu ra Ví dụ, nếu mạng được huấn luyện để nhận dạng ảnh của các số được viết tay nó vẫn không thể ánh xạ các khối từ các bộ phát hiện tham số cuối cùng (tức
là lớp ẩn của autoencoder cuối) tới kiểu loại số của ảnh Trong trường hợp này, giải pháp chung nhất là thêm một hoặc nhiều lớp kết nối một cách đầy đủ tới lớp cuối (các kết nối màu đen) Lúc này toàn mạng có thể được xem như là perceptron đa lớp được
huấn luyện sử dụng lan truyền ngược (bước này còn được gọi là tinh chỉnh)
Các autoencoder được xếp chồng, sau đó là việc cung cấp một giải pháp tiền huấn luyện hiệu quả cho việc khởi tạo các trọng số của mạng, để lại một hoặc nhiều perceptron đa lớp phức tạp mà đã sẵn sàng để huấn luyện (tinh chỉnh)
Trang 31Trong trường hợp này, lớp ẩn của RBM t hoạt động như một lớp nhìn thấy đối với RBM t+1 Lớp đầu vào của RBM đầu tiên là lớp vào của toàn mạng, và tiền huấn
luyện lớp wise tham lam (greedy) làm việc như sau:
1 Huấn luyện RBM t = 1 đầu tiên, sử dụng phân kỳ tương phản (contrastive
divergence) với tất cả các mẫu đang huấn luyện
2 Huấn luyện RBM t=2 thứ hai Từ lớp nhìn thấy với t = 2 là lớp ẩn của t =
1, huấn luyện bắt đầu bởi việc sắp xếp mẫu đầu vào tới lớp nhìn thấy t = 1, nó được
truyền thẳng tới lớp ẩn của t = 1 Dữ liệu này sau đó phục vụ để khởi tạo huấn luyện phân kỳ tương phản cho t=2
3 Lặp lại tiến trình trước cho tất cả các lớp
4 Tương tự như autoencoder được xếp chồng, sau tiền huấn luyện mạng có thể được mở rộng bởi việc kết nối một hoặc nhiều lớp được kết nối một cách đầy đủ (fully) tới lớp ẩn RBM cuối cùng Điều này tạo nên một perceptron đa lớp mà có thể được tinh chỉnh sử dụng lan truyền ngược
Tiến trình này giống như autoencoder được xếp chồng, nhưng autoencoders được thay bằng RBMs và lan truyền ngược được thay bằng thuật toán phân kỳ tương phản
Có nhiều cách mà lĩnh vực học sâu được mô tả Học sâu là một lớp các thuật toán huấn luyện máy học mà:
- Là một phần của lĩnh vực máy học mở rộng
- Sử dụng một tầng nhiều lớp của các khối xử lý phi tuyến cho việc trích chọn tham số và các phép biến đổi Lớp tiếp theo sử dụng đầu ra của lớp trước làm đầu vào Thuật toán có thể có giám sát hoặc không có giám sát và các ứng dụng bao gồm nhận dạng mẫu và phân lớp thống kê
- Được dựa trên học (không có giám sát) nhiều mức của các tham số hoặc sự biểu diễn của dữ liệu Các tham số mức cao hơn được bắt nguồn từ các tham số mức thấp hơn để tạo thành một sự phân cấp
Trang 32- Học nhiều mức của sự biểu diễn (representation) tương tứng với các mức khác nhau của sự trừu tượng, các mức hình thành khái niệm phân cấp
Các định nghĩa này có trong đa lớp nói chung của các khối xử lý phi tuyến và việc biểu diễn các tham số trong học có giám sát hoặc không có giám sát trong mỗi lớp, các lớp hình thành một phân cấp từ các tham số mức thấp tới các tham số mức cao Thành phần của một lớp của khối xử lý phi tuyến sử dụng trong giải thuật belief sâu phụ thuộc các vấn đề đã được giải quyết Các lớp được sử dụng trong học sâu bao gồm các lớp ẩn của một mạng Nơ ron nhân tạo, máy Boltzmann retricted, và tập các công thức mệnh đề phức tạp
Các thuật toán học sâu tương phản với các thuật toán học nông bởi số các phép biến đổi tham số hóa một tín hiệu gặp phải khi nó lan truyền từ lớp vào tới lớp ra, ở đây một phép biến đổi tham số hóa là một khối xử lý mà có các tham số có khả năng huấn luyện chẳng hạn như các trọng số và các ngưỡng Một chuỗi các phép biến đổi
từ đầu vào đến đầu ra là một đường phân chia ảnh hưởng (CAP- Credit Assihnment Path) CAP mô tả khả năng kết nối giữa đầu vào và đầu ra và có thể thay đổi chiều dài Đối với mạng Nơ ron truyền thẳng, độ sâu của CAP và độ sâu của mạng là số các lớp ẩn cộng với 1 (lớp đầu ra cũng được tham số hóa) Đối với mạng Nơ ron hồi quy, trong đó các tín hiệu có thể lan truyền qua một lớp nhiều lần, CAP là không giới hạn chiều dài Các nhà nghiên cứu cho rằng học sâu có nhiều lớp phi tuyến (CAP > 2) và Schmidhuber coi CAP > 10 là học rất sâu
Các thuật toán học sâu được dựa trên sự biểu diễn phân tán Giả định phía sau các biểu diễn phân tán là các dữ liệu quan sát được là được tạo bởi nhiều hệ số khác nhau trên các mức khác nhau Học sâu đã thêm giả định các hệ số được tổ chức thành nhiều mức tương ứng với các mức trừu tượng khác nhau hoặc các thành phần khác nhau Thay đổi số lớp và kích thước lớp có thể sử dụng để cung cấp một lớp trừu tượng khác
Các thuật toán học sâu trong sự khai thác ý tưởng đặc biệt phân cấp các hệ số Các khái niệm khác nhau được học từ các khái niệm trừu tượng hơn, mức cao hơn được học từ các mức thấp hơn Các kiến trúc thường được xây dựng với một phương
Trang 33pháp tham lam (greedy) từng lớp một Học sâu giúp tháo gỡ các vấn đề trừu tượng và chọn ra những tham số hữu ích cho việc học
Đối với việc học có giám sát, thông tin nhãn là có sẵn trong quá trình huấn luyện, học sâu có một nguyên tắc khác với các phương pháp truyền thống của máy học, đó là thay vì tập trung vào các tham số kỹ thuật mà thường cần nhiều hoạt động
và thay đổi một trong các nhiệm vụ, các phương pháp học sâu tập trung vào học to-end dựa trên các tham số thô Nói cách khác, học sâu chuyển từ tham số kỹ thuật đến một mức độ tối đa có thể Để thực hiện tối ưu hóa end-to-end bắt đầu với các tham số thô và kết thúc bằng nhãn, cấu trúc phân lớp thường là cần thiết Từ quan điểm này chúng ta có thể coi việc sử dụng các cấu trúc được phân lớp để rút ra các biểu diễn trung gian cũng như một hệ quả tự nhiên của việc học các tham số thô dựa trên end-to-end Hiểu được mối liên kết giữa hai khía cạnh trên của học sâu là quan trọng để đánh giá việc sử dụng nó trong một số lĩnh vực ứng dụng, tất cả các tác vụ liên quan đến việc học có giám sát (ví dụ: nhận dạng ảnh và nhận dạng tiếng nói có giám sát), sẽ được thảo luận sau
end-Nhiều thuật toán học sâu được trình bày với các vấn đề học không giám sát Bởi các thuật toán này có thể sử dụng dữ liệu không gán nhãn còn các thuật toán học
có giám sát thì không thể Dữ liệu không gán nhãn nhiều hơn, phong phú hơn dữ liệu không gán nhãn, điều này tạo một lợi ích quan trọng của các thuật toán này Mạng Belief sâu là một ví dụ về kiến trúc sâu được huấn luyện không giám sát
1.1.3.4 Lịch sử lĩnh vực học sâu
Các kiến trúc học sâu, đặc biệt được xây dựng từ mạng Nơ ron nhân tạo (ANN), Kiến trúc Neocognitron được giới thiệu bởi nhà nghiên cứu Kunihiko Fukushima năm 1980 Năm 1989 nhà nghiên cứu Yann LeCun có thể áp dụng thuật toán lan truyền ngược chuẩn đã có từ năm 1974, với một mạng Nơ ron sâu với mục đích nhận dạng mã ZIP viết tay trên email Mặc dù áp dụng thành công các thuật toán, thời gian huấn luyện trên tập dữ liệu mất khoảng 3 ngày, khiến cho nó không thể sử dụng thực tế Có nhiều nhân tố làm giảm tốc độ, một là do vấn đề gradient bị triệt tiêu được phân tích năm 1991 bởi nhà nghiên cứu Sepp Hochreiter
Trang 34Năm 1991 mạng Nơ ron được sử dụng để nhận dạng chữ số viết tay 2-D được tách rời, nhận dạng đối tượng 3-D sử dụng cách tiếp cận dựa trên mô hình 3-D phù hợp với hình ảnh 2-D với mô hình đối tượng 3-D thủ công nhà nghiên cứu Juyang Weng đã đề xuất về một bộ não con người không sử dụng mô hình đối tượng 3-D, năm 1992 họ công bố Cresceptron để nhận dạng đối tượng 3-D trực tiếp từ những cảnh lộn xộn Cresceptron là một tầng của nhiều lớp tương tự như Neocognitron Nhưng không giống Neocognitron ở chỗ yêu cầu con người lập trình để các tham số kết hợp với tay, Cresceptron hoàn toàn tự động học các tham số không có giám sát trong mỗi lớp của các tầng nơi mỗi tham số được biểu diễn bởi nhân chập Ngoài ra, Cresceptron cũng phân đoạn từng đối tượng học được từ một cảnh lộn xộn qua việc phân tích ngược thông qua mạng Max-pooling, hiện thường được thông qua bởi các mạng Nơ ron sâu Do thiếu hiểu biết về cách bộ não tự trị các kết nối mạng sinh học
và tính toán chi phí bởi ANN, các mô hình đơn giản sử dụng các tham số thủ công như bộ lọc Gabor và máy hỗ trợ vec tơ (SVM - Support Vector Machines) là một lựa chọn phổ biến của lĩnh vực này trong những năm 1990 và 2000
Trong lịch sử lâu dài của nhận dạng tiếng nói, cả hai hình thức nông và sâu (ví
dụ mạng hồi quy) của mạng Nơ ron nhân tạo đã được khám phá trong nhiều năm Nhưng các phương pháp này không bao giờ vượt qua được sự bất đồng bộ liên kết thủ công mô hình GMM-HMM dựa trên mô hình đường sinh (generative model) của tiếng nói được huấn luyện có sự phán đoán Một số khó khăn chính đã được phân tích
về mặt phương pháp, bao gồm cả giảm gradient và cấu trúc tương quan thời gian yếu (Weak Temporal Correlation) trong các mô hình Nơ ron tiên đoán Tất cả những khó khăn này ngoài việc thiếu khối lượng lớn dữ liệu huấn luyện và khả năng tính toán trong những ngày đầu Hầu hết các nhà nghiên cứu về nhận dạng tiếng nói hiểu rõ những rào cản như vậy Sau đó chuyển từ mạng Nơ ron tới các tiếp cận mô hình sinh cho đến khi có sự nổi lên của lĩnh vực học sâu đã vượt qua được tất cả những khó khăn này
Thuật ngữ “học sâu” đã được đưa vào giữa những năm 2000 sau khi một ấn phẩm của hai nhà nghiên cứu Geoffrey Hinton và Ruslan Salakhutdinov cho thấy
Trang 35cách mà mạng Nơ ron truyền thẳng đa lớp có thể được tiền huấn luyện (pre-trained) một lớp tại một thời điểm, xử lý mỗi lớp lần lượt như máy Boltzmann restricted không giám sát, sau đó sử dụng lan truyền ngược có giám sát cho việc tinh chỉnh Năm 1992, Schmidhuber đã thực hiện một ý tưởng tương tự cho trường hợp tổng quát của hệ thống phân cấp sâu có giám sát của mạng Nơ ron hồi quy, và thực nghiệm cho thấy lợi ích của nó cho việc học có giám sát
Từ sự trỗi dậy của lĩnh vực học sâu, nó đã trở thành một phần của nhiều hệ thống state-of-the-art trong các lĩnh vực khác nhau, đặc biệt là trong thị giác máy tính
và nhận dạng tiếng nói tự động (ASR) Kết quả thường được sử dụng đánh giá thẩm định như TIMIT (ASR) và MNIST (phân lớp ảnh) cũng như một loạt các nhiệm vụ nhận dạng tiếng nói từ vựng lớn liên tục được cải thiện với các ứng dụng mới của lĩnh vực học sâu Hiện nay nó đã chứng minh rằng kiến trúc học sâu trong các dạng của mạng Nơ ron chập đã gần như thực hiện tốt nhất, tuy nhiên chúng được sử dụng rộng rãi trong thị giác máy tính hơn ASR
Các tác động thực sự của lĩnh vực học sâu trong công nghiệp được bắt đầu trong nhận dạng tiếng nói quy mô lớn năm 2010 Cuối 2009, nhà nghiên cứu Geoff Hinton đã được Li Deng mời đến làm việc với ông và các đồng nghiệp tại viện nghiên cứu Microsoft ứng dụng học sâu để nhận dạng tiếng nói Họ phối hợp tổ chức các hội thảo NIPS năm 2009 về lĩnh vực học sâu cho nhận dạng tiếng nói Hội thảo đã được thúc đẩy bởi những hạn chế của mô hình generative sâu của tiếng nói, khả năng tính toán lớn, thời kỳ dữ liệu lớn được đảm bảo thử nghiệm nghiêm túc phương pháp tiếp cận mạng Nơ ron sâu (DNN) Sau đó các nhà nghiên cứu tin rằng tiền huấn luyện mạng Nơ ron sâu sử dụng mô hình generative của mạng Belief sâu (DBN) sẽ là phương thuốc cho những khó khăn chính mà mà mạng Nơ ron gặp phải trong những năm 1990 Tuy nhiên, ngay sau khi các nghiên cứu theo hướng này bắt đầu tại Microsoft Research, đã phát hiện ra rằng một lượng lớn dữ liệu huấn luyện được sử dụng và đặc biệt là khi mạng Nơ ron sâu được thiết kết với lượng lớn các lớp đầu ra phụ thuộc ngữ cảnh, giảm đáng kể lỗi xảy ra sau state-of-the-art GMM-HMM và nâng cấp hệ thống nhận dạng tiếng nói dựa trên mô hình generative mà không cần tiền
Trang 36huấn luyện DBN generative, việc tìm kiếm xác minh sau đó được thực hiện bởi nhiều nhóm nghiên cứu nhận dạng tiếng nói khác Hơn nữa, bản chất của lỗi nhận dạng được tạo ra bởi hai loại của hệ thống đã tìm được các đặc trưng khác nhau, cung cấp nhận thức về kỹ thuật tích hợp học sâu cho hiệu quả cao, chạy thời gian thực (run-time) hệ thống giải mã tiếng nói được triển khai bởi tất cả các nhà chuyên môn trong ngành công nghiệp nhận dạng tiếng nói Lịch sử phát triển quan trọng này trong học sâu đã được mô tả và phân tích trong một số cuốn sách gần đây
Những tiến bộ trong phần cứng cũng là một yếu tố quan trọng tạo điều kiện đổi mới cho lĩnh vực học sâu Đặc biệt, các khối xử lý đồ họa mạnh mẽ (GPU) là rất thích hợp cho các loại crunching, ma trận/vec tơ toán học liên quan đến máy học GPU đã được đưa ra tăng tốc các thuật toán huấn luyện bởi các yêu cầu của cường
độ, giảm thời gian chạy từ hàng tuần xuống ngày
Một số phương pháp học sâu thành công nhất liên quan đến mạng Nơ ron nhân tạo Mạng Nơ ron nhân tạo được lấy ý tưởng từ những mô hình sinh học năm 1959 bởi những người đoạt giải Nobel David H Hubel & Torsten Wiesel, người đã tìm thấy hai loại tế bào trong vỏ não: các tế bào đơn giản và các tế bào phức tạp Nhiều mạng Nơ ron nhân tạo có thể được xem như là mô hình tầng của các loại tế bào lấy ý tưởng từ những quan sát sinh học
Neocognitron Fukushima đã giới thiệu mạng Nơ ron chập được huấn luyện từng phần bằng học không giám sát trong khi con người được hướng dẫn các tham số trong mặt phẳng nơ ron Yann LeCun (1989) áp dụng lan truyền ngược có giám sát tới kiến trúc như vậy Nhà nghiên cứu Weng (1992) đã công bố Perceptron mạng Nơ ron chập cho nhận dạng đối tượng 3-D từ hình ảnh của các cảnh lộn xộn và phân đoạn các đối tượng từ các hình ảnh
Một nhu cầu hiển nhiên về nhận dạng các đối tượng 3-D là tính bất biến ít nhất
và sự biến dạng có thể chấp nhận được Max-pooling xuất hiện lần đầu được đề xuất bởi Cresceptron cho phép mạng có thể chịu được biến dạng một cách có thứ bậc từ
Trang 37nhỏ đến lớn khi sử dụng chập Max-pooling hữu ích nhưng vẫn không hoàn toàn đảm bảo, sự thay đổi bất biến ở mức pixel
Với sự ra đời của thuật toán lan truyền ngược vào những năm 1970, nhiều nhà nghiên cứu đã cố huấn luyện có giám sát mạng Nơ ron nhân tạo sâu ngay từ đầu, ban đầu không mấy thành công Luận án tốt nghiệp của Sepp Hochreiter năm 1991 chính thức xác định lý do cho sự thất bại này “vấn đề gradient bị triệt tiêu”, nó không chỉ ảnh hưởng đến các mạng truyền thẳng nhiều lớp mà còn ảnh hưởng đến các mạng Nơ ron hồi quy Sau này được huấn luyện bằng cách unfolding chúng tới mạng truyền thẳng rất sâu, nơi một lớp mới được tạo ra cho mỗi bước thời gian của một chuỗi đầu vào được xử lý bởi mạng Là lỗi truyền từ lớp đến lớp, chúng rút lại theo cấp số nhân của số lớp
Để khắc phục vấn đề này, một số phương pháp đã được đề xuất Một là phân cấp đa mức của mạng được tiền huấn luyện một cấp tại một thời điểm thông qua học không giám sát, tinh chỉnh thông qua lan truyền ngược Ở đây mỗi cấp học một sự biểu diễn nén của các quan sát đó được đưa vào mức tiếp theo (Jürgen Schmidhuber, 1992)
Phương pháp khác là một mạng bộ nhớ tạm (LSTM - Long Short Term Memory) đưa ra năm 1997 bởi Hochreiter & Schmidhuber Năm 2009, các mạng LSTM đa chiều đã giành được ba ICDAR 2009 trong cuộc thi nhận dạng chữ viết mà không cần kiến thức về ba ngôn ngữ khác nhau để có thể học Sven Behnke chỉ dựa trên các dấu hiệu của gradient (Rprop) khi huấn luyện Neural Abstraction Pyramid
để giải quyết các vấn đề như xây dựng lại ảnh và phân vùng khuôn mặt
Các phương pháp khác cũng sử dụng tiền huấn luyện không có giám sát với cấu trúc mạng nơ ron, khiến cho nó lần đầu tiên biết phát hiện tham số hữu ích Sau
đó các mạng tiếp tục được huấn luyện bởi lan truyền ngược có giám sát để phân lớp
dữ liệu đã được gán nhãn Mô hình sâu của Hinton et al (2006) bao gồm việc học sự phân bố của các biểu diễn mức cao sử dụng các lớp liên tiếp của các biến ẩn nhị phân hoặc giá trị thực Nó sử dụng một máy Boltzmann Restricted (Smolensky, 1986) để
mô hình hóa mỗi lớp mới của các tham số mức cao hơn Mỗi lớp mới đảm bảo tăng
Trang 38về giới hạn dưới (lower-bound) về hợp lệ (log likelihood) của dữ liệu, do đó cải thiện các mô hình nếu được huấn luyện đúng cách Khi đủ nhiều lớp đã được huấn luyện các kiến trúc sâu có thể được sử dụng như một mô hình generative theo cách tái tạo
dữ liệu khi lấy mẫu dưới (down) mô hình từ kích hoạt các tham số mức cao nhất
Nhóm nghiên cứu Google Brain dẫn đầu bởi Andrew Ng và Jeff Dean đã tạo
ra mạng Nơ ron mà các mạng này được học để nhận dạng các khái niệm ở mức cao hơn, chẳng hạn như phát hiện con mèo, chỉ từ hình ảnh không được gán nhãn lấy từ video YouTube
Các phương pháp khác dựa trên sức mạnh xử lý tuyệt đối của máy tính hiện đại, đặc biệt là GPU Năm 2010, Dan Ciresan và colleagues trong nhóm của Jürgen Schmidhuber tại Thụy Sĩ đã đưa ra rằng mặc dù “vấn đề triệt tiêu gradient” đã đề cập
ở trên, sức mạnh xử lý vượt trội của GPU làm cho lan truyền ngược khả thi với mạng
Nơ ron truyền thẳng sâu với nhiều lớp Phương pháp này vượt trội so với tất cả các
kỹ thuật máy học ngày xưa, vấn đề chữ số viết tay MNIST nổi tiếng của Yann LeCun
và các đồng nghiệp tại New York
Tính đến năm 2011, trạng thái kỹ thuật trong học sâu mạng truyền thẳng các lớp chập luân phiên và các lớp max-pooling, đứng đầu bởi một số lớp phân loại thuần túy các lớp Huấn luyện thường được thực hiện mà không cần tiền huấn luyện không
có giám sát Từ 2011, việc xử lý dữ liệu trên nền GPU của phương pháp này chiến thắng nhiều cuộc thi nhận dạng mẫu, bao gồm IJCNN 2011 cuộc thi nhận dạng báo hiệu giao thông (Traffic Sign Recognition Competition), ISBI 2012 phân đoạn các cấu trúc Nơ ron trong EM stacks challenge
Phương pháp học sâu có giám sát như vậy cũng là phương pháp nhận dạng mẫu nhân tạo đầu tiên để đạt được hiệu suất có thể cạnh tranh với con người về công việc nhất định
Để phá vỡ những rào cản yếu kém AI được biểu diễn bởi học sâu, nó cần thiết
để vượt qua các kiến thức học sâu vì bộ não sinh học sử dụng cả hai mạch nông và sâu để đối phó với sự đa dạng của bất biến mà não hiển thị Weng lập luận rằng bản thân các dây bộ não chủ yếu theo các thống kê tín hiệu và do đó một tầng nối tiếp
Trang 39không thể bắt kịp tất cả các phụ thuộc thống kê chủ yếu Đảm bảo hoàn toàn thay đổi bất biến cho ANN để đối phó với các đối tượng tự nhiên lớn và nhỏ trong những cảnh lộn xộn trở thành hiện thực khi sự bất biến đã vượt ra ngoài, mở rộng đến các khái niệm ANN-được học chẳng hạn như vị trí, kiểu (nhãn phân lớp đối tượng), quy mô,
độ sáng (lighting), trong các mạng phát triển (DN- Developmental Network) mà các phương án là Where-What Network (WWN)
1.1.3.6 Các kiến trúc học sâu
Một số lượng lớn các biến thể khác nhau của các cấu trúc sâu, tuy nhiên hầu hết trong số chúng được phân nhánh từ một kiến trúc mẹ ban đầu Không phải luôn luôn có thể so sánh hiệu suất của tất cả các kiến trúc với nhau, vì chúng không phải tất cả đều được thực hiện trên bộ dữ liệu giống nhau Học sâu là một lĩnh vực đang phát triển nhanh vì vậy các kiến trúc mới, các biến thể, các thuật toán mới có thể xuất hiện chỉ sau vài tuần
Các kiến trúc học sâu gồm: mạng Nơ ron sâu, Mạng Belief sâu, mạng Nơ ron chập, mạng Belief sâu chập, máy Boltzmann sâu, Autoencoder xếp chồng, mạng xếp chồng sâu, mạng xếp chồng sâu Ten sơ (T-DSN), Spike-and-Slab RBM (ssRBMs,
mô hình phân cấp sâu phức hợp/hỗn hợp, mạng Coding sâu, Deep Kernel Machines, mạng Q sâu
1.1.4 Mạng Nơ ron sâu
1.1.4.1 Tổng quan về mạng Nơ ron sâu
Một mạng Nơ ron sâu (DNN) là một mạng Nơ ron nhân tạo với nhiều lớp ẩn của các khối giữa các lớp đầu vào và các lớp đầu ra Tương tự như mạng nơ ron nhân tạo (ANN) nông, DNN có thể mô hình hóa mối quan hệ phi tuyến phức tạp Các kiến trúc DNN như: phát hiện đối tượng; phân tích các thành phần tạo ra mô hình mà các đối tượng được thể hiện các thành phần được phân lớp của ảnh nguyên thủy
1.1.4.2 Mạng nơ ron sâu cho mô hình âm học trong nhận dạng tiếng
Hầu hết các hệ thống nhận dạng tiếng nói hiện nay đều sử dụng mô hình Markov ẩn (HMM) để đối phó với sự thay đổi theo thời gian của tiếng nói và sử dụng
Trang 40mô hình Gauss để xác định các trạng thái của mỗi HMM phù hợp với một khung hoặc một cửa sổ của khung của các hệ số biểu diễn cho các đầu vào âm học Một cách khác
để đánh giá sự phù hợp là sử dụng mạng nơ ron truyền thẳng lấy một vài khung của các hệ số như đầu vào và xác suất hậu nghiệm trên các trạng thái như là đầu ra Mạng
nơ ron sâu (DNN) có nhiều lớp và được huấn luyện sử dụng phương pháp mới được chứng minh hiệu quả hơn GMM trên rất nhiều tiêu chí nhận dạng tiếng nói
Các thuật toán máy học mới có thể tạo nên sự tiến bộ trong nhận dạng tiếng nói tự động (ASR) Sự tiến bộ lớn nhất gần đây cho bốn thập kỷ trước với sự ra đời của thuật toán tối ưu hóa kỳ vọng (EM – Expectation Maximization) cho huấn luyện
mô hình HMM Thuật toán EM có thể phát triển các hệ thống nhận dạng tiếng nói cho các tác vụ thế giới thực bằng cách sử dụng GMM để biểu diễn mối quan hệ giữa các trạng thái HMM và đầu vào âm học Các hệ thống âm học thường được biển diễn bằng các hệ số MFCC hoặc PLP được tính toán từ các dạng sóng thô
GMM có một số lợi thế khiến nó phù hợp với mô hình phân bố xác suất trên các vec tơ tham số đầu vào được kết hợp với mỗi trạng thái của một HMM Với đầy
đủ các thành phần, chúng có thể mô hình hóa phân bố xác suất cho độ chính xác cao,
dễ dàng để phù hợp với dữ liệu sử dụng thuật toán EM
Độ chính xác của các hệ thống nhận dạng GMM-HMM có thể cải thiện tốt hơn nếu nó được tinh chỉnh discriminative sau khi được huấn luyện generative để tối
đa hóa khả năng tạo ra các dữ liệu được quan sát, đặc biệt nếu hàm mục tiêu discriminative được sử dụng cho huấn luyện có liên quan chặt chẽ đến tỷ lệ lỗi trên các âm, từ, hoặc câu Độ chính xác cũng có thể được cải thiện bằng cách kết hợp hoặc ghép các tham số đầu vào (ví dụ: MFCC) với các tham số “nối đuôi nhau” hoặc “nút
cổ chai” sử dụng mạng nơ ron
Trong một vài năm qua, những tiến bộ trong các thuật toán học máy và phần cứng máy tính đã đưa đến các phương pháp huấn luyện DNN chứa nhiều lớp ẩn phi tuyến và một lớp đầu ra rất lớn Lớp đầu ra lớn là cần thiết để phù hợp với số lượng lớn các trạng thái HMM phát sinh khi mỗi âm được mô hình hóa bởi một số HMM
“triphone” khác nhau đưa vào 2 bên của âm Ngay cả khi rất nhiều các trạng thái của