CHƯƠNG 1. TỔNG QUAN VỀ MẠNG NƠ RON VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP 1. Nơ ron nhân tạo 1.1 Lịch sử của nơ ron nhân tạo Vào năm 1943, nhà thần kinh học Warren McCulloch đã cùng nhà toán học Walter Pitts đã viết một cuốn sách về cách mạng thần kinh hoạt động. Và họ đã thực hiện mô phỏng một mạng thần kinh đơn giản trên một mạch điện.
[9] Vào năm 1949, Donald Hebb đã viết cuốn sách Organization of Behavior. Điểm nhấn chính là mạng thần kinh nào được sử dụng nhiều sẽ được tăng cường. Vào năm 1959, David Hubel và Torsten Wiesel đã xuất bản cuốn sách Receptive fields of single neurons in the cat’s striate cortex, miêu tả về phản ứng của các tế bào thần kinh thị giác trên loài mèo, cũng như cách loài mèo ghi nhớ và nhận diện hình dạng trên kiến trúc vỏ não của nó.1 Hình ảnh thí nghiệm của David Hubel và Torsten Wiesel trên mèo [10] Vào năm 1989, Yann LeCun đã áp dụng thuật toán học cho mạng nơ ron theo kiểu lan truyền ngược vào kiến trúc mạng nơ ron tích chập của Fukushima. Sau đó vài năm, LeCun đã công bố LeNet-5 [13].
Có thể nói, LeNet-5 là một trong những mạng nơ ron tích chập sơ khai nhất, tuy nhiên các dấu ấn của nó vẫn tồn tại tới ngày nay, có thể thấy thông qua một số thành phần thiết yếu mà các mạng nơ ron tích chập của ngày nay vẫn đang sử dụng 4 TIEU LUAN MOI download : skknchat@gmail.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học Hình 1.2: Hình ảnh một nơ ron sinh học [14] Một nơ ron gồm có: thân nơ ron, tua gai thần kinh, sợi trục thần kinh, trong đó: Thân nơ ron: là nơi xử lý các tín hiệu được đưa vào; Tua gai thần kinh: là nơi nhận các xung điện vào trong nơ ron; Sợi trục thần kinh: là nơi đưa tín hiệu ra ngoài sau khi được xử lý bởi nơ ron; Khớp thần kinh: vị trí nằm giữa tua gai thần kinh và sợi trục thần kinh, đây là điểm liên kết đầu ra của nơ ron này với đầu vào của nơ ron khác.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo Dựa vào cấu tạo của một nơ ron sinh học, các nhà khoa học nghiên cứu và lập trình đã đưa ra kiến trúc của một nơ ron nhân tạo: Hình 1.3: Công thức của một nơ ron nhân tạo [41] 5 TIEU LUAN MOI download : skknchat@gmail.com Mạng nơ ron nhân tạo có thể mô tả đơn giản lại như sau: Hình 1.4: Hình ảnh một nơ ron nhân tạo Trong đó: Danh sách các đầu vào: Là các thuộc tính đầu vào của một nơ ron. Số lượng thuộc tính đầu vào thường nhiều hơn một, do dữ liệu thô đầu vào thường là một vector nhiều chiều, hoặc nhiều nơ ron tầng trước kết nối tới một nơ ron tầng sau. Trọng số liên kết: Các liên kết được thể hiện độ mạnh yếu qua một giá trị được gọi là trọng số liên kết. Kết hơp với các đầu truyền, tín hiệu đến các nơ ron nhân tạo khác sẽ được tính bằng ; Hình 1.5: Hình ảnh vị trí thiên lệch được thêm vào trong thực tế 6 TIEU LUAN MOI download : skknchat@gmail.com Hàm tổng: Tổng các tích của các đầu vào với trọng số liên kết mô phỏng các khớp kết nối.
Sau đó đi qua hàm tính tổng để tính ra giá trị trước khi đưa vào hàm truyền; Thiên lệch (b): Độ lệch được đưa vào sau khi khi tính toán xong hàm tổng, tạo ra giá trị cuối cùng trước khi đưa vào hàm truyền. Mục đích của việc thêm vào thiên lệch nhằm dịch chuyển chức năng của hàm kích hoạt sang trái hoặc phải, giúp ích khi mạng được huấn luyện. Hình ảnh vị trí thiên lệch được thêm vào trong mạng nơ ron thực tế. Hình ảnh huấn luyện khi có và không có thiên lệch: Hình 1.6: Kết quả của hàm sigmoid với các trọng số đầu vào khác nhau nhưng không có thiên lệch Hình 1.7: Kết quả của hàm sigmoid với các trọng số thiên lệch khác nhau Hàm kích hoạt (Activation functions): Hàm này được sử dụng để tính toán giá trị của đầu ra dựa vào giá trị của hàm Tổng.
7 TIEU LUAN MOI download : skknchat@gmail. Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo 1.1 Hàm Sigmod Biểu diễn hàm: Đạo hàm của hàm: Hàm Sigmoid được sử dụng vì ngưỡng của nó nằm trong khoảng (0, 1). Do đó, hàm này được sử dụng nhiều cho các mô hình dự đoán xác suất đầu ra, tức kết quả chỉ tồn tại trong khoảng từ 0 đến 1: khi đầu vào là số dương lớn, đầu ra của hàm sigmoid gần bằng 1. Khi nhỏ hơn 0, đầu ra gần bằng 0.
Tuy nhiên, việc tối ưu của hàm này khó khăn, nguyên nhân vì nếu giá trị đầu vào của hàm là 1 số rất lớn, thì đầu ra của hàm càng về 2 đầu xấp xỉ 1 hoặc 0, nên tốc độ hội tụ sẽ rất chậm.8: Đồ thị hàm Sigmoid 1.2 Hàm TanH Biểu diễn hàm: Đạo hàm của hàm: Hàm TanH được sử dụng vì đầu ra của hàm nằm trong khoảng , thích hợp với các mô hình đầu ra có ba giá trị: âm, trung tính (0) và dương. Chúng ta có thể thấy rõ hơn điều này trong hình minh họa. 8 TIEU LUAN MOI download : skknchat@gmail.9: Đồ thị hàm TanH 1. Hàm tuyến tính Biểu diễn hàm: Đạo hàm của hàm: Hàm tuyến tính áp dụng thao tác nhận dạng trên dữ liệu với dữ liệu đầu ra tỷ lệ thuận với dữ liệu đầu vào.10: Đồ thị hàm tuyến tính 1.4 Hàm RELU Biểu diễn hàm: Đạo hàm của hàm: Hàm RELU áp dụng với những trường hợp cần đầu ra nằm trong khoảng (0, +∞).
Hàm RELU có tốc độ tính toán rất nhanh, gán các giá trị âm trở thành 0 ngay lập tức, phù 9 TIEU LUAN MOI download : skknchat@gmail.com hợp cho việc huấn luyện từ dữ liệu chuẩn. Tuy nhiên, điều này khiến hàm RELU không ánh xạ các giá trị âm một cách thích hợp.11: Đồ thị hàm RELU 1.5 Hàm ELU Biểu diễn hàm: Đạo hàm của hàm: Hàm ELU là một biến thể của hàm RELU. Hàm thường được sử dụng khi ngưỡng đầu ra của nó nằm trong khoảng (-1, +∞). Hàm ELU khắc phục hạn chế ánh xạ các giá trị âm của hàm RELU.12: Đồ thị hàm ELU 10 TIEU LUAN MOI download : skknchat@gmail.2 Mạng nơ ron nhân tạo 1.1 Giới thiệu mạng nơ ron nhân tạo Mạng nơ ron nhân tạo (Artificial Neural Network ANN) là một chuỗi các giải thuật lập trình, mô phỏng dựa trên cách hoạt động của mạng lưới thần kinh trong não bộ các sinh vật sống.
Mạng nơ ron nhân tạo được sử dụng để tìm ra mối quan hệ của một tập dữ liệu thông qua một thiết kế kiến trúc chứa nhiều tầng ẩn (hidden layer), mỗi tầng lại chứa nhiều nơ ron. Các nơ ron được kết nối với nhau và độ mạnh yếu của các liên kết được biểu hiện qua trọng số liên kết. Lập trình thông thường có thể làm được rất nhiều phần mềm lớn, như tính toán mô phỏng các vụ nổ hạt nhân trong siêu máy tính ở các phòng thí nghiệm, hoặc tái hiện các tế bào ở cấp độ phân tử để phân tích các thử nghiệm thuốc. Một siêu máy tính có thể tính toán được nhiều tỉ phép tính trên giây, tuy nhiên lập trình thông thường lại gặp khó khăn trong việc nhận ra các mẫu đơn giản, ví dụ như nhận diện mặt người, điều mà một bộ não sinh học xử lý nhanh và chính xác hơn nhiều.
Áp dụng với các kỹ thuật học sâu, mạng nơ ron nhân tạo hiện nay đang được áp dụng để giải quyết những vấn đề mà lập trình theo logic thông thường khó có thể giải quyết được. Do đó, mạng nơ ron nhân tạo đang nhanh chóng trở nên phổ biến, và là xu thế trên nhiều lĩnh vực.2 Một số kiểu mạng nơ ron Có hai kiểu mạng nơ ron chính: mạng nơ ron truyền thằng (feedforward neural network) và mạng nơ ron hồi quy (recurrent neural network). Mạng truyền thẳng và hồi quy được minh họa như sau: Hình 1.13: Mạng nơ ron truyền thẳng 11 TIEU LUAN MOI download : skknchat@gmail.com Dễ thấy, ở mạng nơ ron truyền thẳng, các nơ ron trong tầng ẩn đều được kết nối với các nơ ron trong tầng n. Do có nhiều tầng ẩn nên chúng ta có thể thấy rằng mạng truyền thẳng kéo dài trong không gian, và là không có bất kỳ đường tuần hoàn (cyclic path) nào nằm trong mạng.
Mạng nơ ron truyền thẳng rất phổ biến hiện nay.14: Mạng nơ ron hồi quy Một loại khác là mạng nơ ron hồi quy. Không giống như mạng nơ ron truyền thẳng, mạng nơ ron hồi quy có ít nhất một đường dẫn tuần hoàn. Chúng ta có thể thấy nó ở hình minh họa phía trên. Vì có một đường dẫn tuần hoàn, nên mạng nơ ron hồi quy có thể gây ra vòng lặp vô cực.
Tuy nhiên, mạng nơ ron tuần hoàn có một ứng dụng quan trọng là chúng có thể nhận diện cho các giai đoạn thời gian khác nhau, như hình minh họa sau: Hình 1.15: Cách huấn luyện cho một mạng nơ ron hồi quy Như ví dụ trên, có một nút A kết nối với nút B và một chu kỳ đến chính nút A. Mạng nơ ron hồi quy không xử lý đường dẫn tuần hoàn và các kết nối cùng một lúc. Mạng nơ ron hồi quy giả sử rằng đầu ra của nút A trong thời gian n là đầu vào của nút B và nút A trong thời gian n + 1. Vì vậy, ngoài tính chất kéo dài trong không gian khi kết nối với các tầng nơ ron tiếp theo, mạng nơ ron hồi quy cũng nằm sâu trong thời gian.
Vì vậy, các mạng nơ ron hồi quy có thể mô hình hóa các hệ thống thay đổi theo bối cảnh. Ví dụ: mạng nơ ron hồi quy thường được sử dụng trong xử lý ngôn ngữ theo ngữ cảnh. Mạng 12 TIEU LUAN MOI download : skknchat@gmail.com nơ ron hồi quy có thể xử lý các phụ thuộc xa (long-term dependencies) theo mốc thời gian, ví dụ như mạng bộ nhớ dài-ngắn (Long Short Term Memory networks).3 Mạng nơ ron lan truyền ngược 1.1 Tổng quan về mạng nơ ron lan truyền ngược Giải thuật lan truyền ngược được mô tả ngắn gọn như sau: 1. Bước 1: Lan truyền.
Giai đoạn lan truyền có hai bước, lan truyền tiến và lan truyền ngược. Bước lan truyền tiến là nhập dữ liệu huấn luyện vào các mạng nơ ron và tính toán đầu ra. Sau đó, dựa vào kết quả đầu ra, so sánh với dữ liệu huấn luyện. Chúng ta có thể sử dụng lan truyền ngược để cập nhật ngược lại trọng số lại cho các nơron trong các tầng trước đó.