Chương 3. PHƯƠNG PHÁP NGHIÊN CỨU
3.3 Phân loại câu hỏi bằng các kỹ thuật học sâu (Deep Learning) 36
3.3.1 Mạng nơron nhân tạo (Artificial Neural Network – ANN)
Mạng nơ-ron nhân tạo, Artificial Nơ-ron Network (ANN) là mô hình mô phỏng xử lý thông tin của các nơ-rơn sinh học. Mạng nơ-ron nhân tạo gồm có một nhóm các nơ-ron nhân tạo (nút) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
37
Một mạng nơ-ron nhân tạo được xây dựng cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu, ...) thông qua một quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơ-ron.
Hình 3.15: Một nơ rơn sinh học [26]
Hình 3.16: Một nơ ron nhân tạo [26]
Các thành phần cơ bản của mạng nơ-ron nhân tạo:
Đơn vị xử lý: hay còn được gọi là một nơ-ron hay một nút (node). Nơ-ron sẽ nhận tín hiệu vào từ các nơ-ron tầng trước hay từ tín hiệu đầu vào và tính toán tín hiệu đầu ra sẽ được lan truyền sang các nơ-ron khác (hình 2).
Trong đó:
xi: là các tín hiệu đầu vào.
wi: là trọng số tương ứng với các đầu vào.
bi: là độ lệch (bias).
𝑓(∑ 𝑤𝑖 𝑖 𝑥𝑖 + 𝑏): là đầu ra của nơ-ron Trong một mạng nơ-ron có 3 dạng đơn vị xử lý:
Nơ-ron đầu vào: nhận tín hiệu từ bên ngoài
Nơ-ron ẩn: tín hiệu vào và ra của nơ-ron ẩn nằm trong mạng
Nơ-ron đầu ra: gửi dữ liệu ra bên ngoài
Hàm kết hợp: mỗi một nơ-ron trong một mạng kết hợp các giá trị đầu vào thông qua các liên kết với các nơ-ron khác sinh ra một giá trị đầu ra (net input).
Hàm thực hiện nhiệm vụ này gọi là hàm kết hợp (combination function), được định nghĩa bởi một luật lan truyền cụ thể. Trong phần lớn các mạng nơ-ron, chúng ta giả sử rằng mỗi một nơ-ron cung cấp một bộ cộng như là đầu vào cho
38
nơ-ron mà nó có liên kết. Tổng đầu vào đơn vị j là tổng trọng số của các đầu ra riêng lẻ từ các đơn vị kết nối cộng thêm độ lệch (bias) bj
𝑎𝑖 = ∑ 𝑤𝑗𝑖
𝑛
𝑖=1
𝑥𝑖 + 𝑏𝑗
Hàm kích hoạt (Activation functions): phần lớn các nơ-ron trong mạng nơ-ron chuyển net input bằng cách sử dụng một hàm vô hướng (scalar-to-scalar function) gọi là hàm kích hoạt, kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của nơ-ron. Loại trừ khả năng nơ-ron đó thuộc lớp ra, giá trị kích hoạt được đưa vào một hay nhiều nơ-ron khác. Các hàm kích hoạt thường bị ép vào một khoảng giá trị xác định, do đó thường được gọi là các hàm bẹp (squashing).
Các hàm kích hoạt hay được sử dụng là:
Hàm sigmoid
𝑔(𝑥) = 1 1 + 𝑒−𝑥
Hình 3.17: Hàm sigmoid [26]
Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện (trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính toán trong quá trình huấn luyện. Hàm này được ứng dụng cho các chương trình ứng dụng mà các đầu ra mong muốn rơi vào khoảng [0,1].
Tuy nhiên, những năm gần đây, hàm số này ít khi được sử dụng vì nó có một nhược điểm cơ bản như là khi đầu vào có trị tuyệt đối lớn (rất âm hoặc rất dương), gradient của hàm số này sẽ rất gần với 0. Điều này đồng nghĩa với việc các hệ số tương ứng với nơ-ron đang xét sẽ gần như không được cập nhật.
39 Hàm tanh
𝑔(𝑥) =𝑒𝑥− 𝑒−𝑥 𝑒𝑥+ 𝑒−𝑥
Hình 3.18: Hàm tanh [26]
Hàm tanh có các thuộc tính giống như hàm sigmoid và cũng có nhược điểm về việc gradient rất nhỏ với các đầu vào có trị tuyệt đối lớn. Hàm tanh làm việc tốt đối với các ứng dụng có đầu ra yêu cầu trong khoảng [-1,1].
Hàm ReLU
𝑔(𝑥) = 𝑚𝑎𝑥(0, 𝑥)
Hình 3.19: Hàm ReLU
Hàm ReLU (Rectified Linear Unit) được sử dụng rộng rãi gần đây vì tính đơn giản của nó. Ưu điểm chính của hàm này là giúp cho việc training các Deep Networks nhanh hơn rất nhiều. Sự tăng tốc này được cho là vì ReLU được tính toán gần như tức thời và gradient của nó cũng được tính cực nhanh với gradient bằng 1 nếu đầu vào lớn hơn 0, bằng 0 nếu đầu vào nhỏ hơn 0.