Tải bản đầy đủ (.docx) (51 trang)

DEEP FEEDFORWORD NETWORKS và các THƯ VIỆN xử lý NGÔN NGỮ tự NHIÊN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.26 MB, 51 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐẠI HỌC QUỐC GIA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------------------------

TIỂU LUẬN
DEEP FEEDFORWORD NETWORKS VÀ CÁC THƯ VIỆN XỬ LÝ NGÔN NGỮ
TỰ NHIÊN

Giảng viên hướng dẫn
Họ và tên

Lớp: Khai Phá Dữ Liệu – INT3209 2

PSG. TS. Hà Quang Thụy
Mã sinh viên


LỜI CẢM ƠN
Toàn thể thành viên nhóm 2 chúng em xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới
thầy Hà Quang Thụy, người đã tận tình chỉ bảo, hướng dẫn và giúp đỡ chúng em hoàn thành tiểu
luận này.

Toàn thể thành viên nhóm 2 xin chân thành cảm đến các thành viên trong lớp Khai Phá Dữ
Liệu – INT3209 2 đã đưa ra những góp ý, nhận xét và những câu hỏi trong thời gian nhóm
thuyết trình đã giúp nhóm hoàn thiện hơn bài tiểu luận.

Nhóm thực hiện


MỤC LỤC


GIỚI THIỆU......................................................................................................................... 4
I.

GIỚI THIỆU VỀ DEEP FEEDFORWARD NETWORK.........................................................5

II. VÍ DỤ: HỌC XOR...........................................................................................................6
III.

HỌC DỰA TRÊN GRADIENT.....................................................................................11

1. Hàm mất mát – Cost function................................................................................12
1.1

Học phân bố có điều kiều bằng Maximum Likelihood.....................................12

1.2

Học thống kê có điều kiện...............................................................................12

2. Output units...........................................................................................................13

IV.

2.1

Linear units for phân bố Gausian.....................................................................14

2.2

Sigmoid Units cho phân bố Bernoulli..............................................................14


2.3

Softmax Units cho phân bố Multinoulli...........................................................15

ĐƠN VỊ ẨN.............................................................................................................. 16

1. Rectified Linear Units(ReLU) và các biến thể của nó..............................................16
2. Logistic sigmoid và hyperbolic tangen....................................................................18


3. Một số đơn vị ẩn khác............................................................................................19
V. THIẾT KẾ KIẾN TRÚC...........................................................................................21
1. Tính chất và độ sâu xấp xỉ phổ dụng......................................................................21
2. Xem xét các kiến trúc khác.....................................................................................24
VI.

BACK-PROPAGATION VÀ CÁC THUẬT TOÁN VI PHÂN KHÁC....................................26

6.1

Các đồ thị tính toán............................................................................................26

6.2

Quy tắc chuỗi của giải tích................................................................................28

6.3

Áp dụng đệ quy chuỗi quy tắc cho Back-Propagation.........................................28


6.4 Sử dụng thuật toán back-propagation trong mạng nơ-ron nhiều lớp đầy đủ kết nối
32
6.5

Phép vi phân symbol - to – symbol....................................................................34

6.6

Back-Propagation tổng quát................................................................................35

6.7

Ví dụ : Back-Propagation cho việc huấn luyện mạng........................................38

6.8

Sự phức tạp......................................................................................................41

6.9

Đạo hàm bậc cao................................................................................................41

VII.

CÁC GHI CHÚ..........................................................................................................42

VIII

PHÂN BÀI TÂP........................................................................................................45


8.1

CÁC THƯ VIỆN PHỔ BIẾN...................................................................................45

8.2 LÀM QUEN VỚI MÔT SÔ TÁC VỤ XƯ LÍ NGÔN NGƯ.............................................48
KẾT LUẬN.......................................................................................................................... 50
TÀI LIỆU THAM KHẢO.......................................................................................................51


GIỚI THIỆU
Các mô hình học sâu hiện đại đang cung cấp những framework đầy sức mạnh cho việc học
giám sát. Bằng cách thêm nhiều lớp – layers và thêm nhiều đơn vị (unit) trong một lớp, một
mạng học sâu có thể biểu diễn được những hàm phức tạp. Hầu hết các yêu cầu đều là đưa ra
một vector đích khi biết khi cho biết một vector đầu vào, điều này thường khá là dễ dàng cho
một người thực hiện nhanh chóng, và cũng hoàn toàn thực hiện được thông qua học sâu nếu
như mô hình này đủ phức tạp và tập dữ liệu đã được dán nhãn đủ lớn. Nằm sau hầu hết các
ứng dụng thực tiễn của học sau này là các kĩ thuật xấp xỉ hàm chứa tham số (core parametric
function approximation technology) và Deep Feedforward Networks là một mô hình như thế, là
một trong mô hình cơ bản, quan trọng đối với bất kì người học nào muốn bắt đầu với con
đường học sâu này.


Qua những kiến thức tiếp thu được trong quá trình học môn Khai Phá Dữ Liệu được PGS. TS Hà
Quang Thụy giảng dạy và dựa trên hai quyển Deep Learning[1] của Ian Goodfellow, Yoshua
Bengio, Aaron Courville và Deep Learning for Natural Language Processing. Creating Neural
Networks with Python[2] của Palash Goyal, Sumit Pandey, Karan Jain, thông qua bài tiểu luận,
nhóm sinh viên thực hiện mong muốn trình bày những hiểu biết của mình mạng FeedForward
và các thư viện xử lý ngôn ngữ tự nhiên.
Tiểu luận này bắt đầu bằng những giới thiệu những kiến thức những khái niệm cơ bản về

mạng Deep Feedforward, hay còn gọi là Multilayer Perceptrons(MLPs). Sau đó tiểu luận sẽ ứng
dụng mạng Deep Feedforward trong việc học XOR. Việc huấn luyện một mạng Feedforward yêu
cầu đưa ra những quyết định thiết kế tương tự như đối với một mô hình tuyến tính: lựa chọn
một hàm mất mát (cost functions), dạng của các đơn vị đầu ra (output units) và thuật toán tối
ưu hóa. Vì vậy, tiểu luận sẽ nêu lại sơ lược về quá trình học dựa trên gradient, những quyết định
thiết kế dành riêng cho Feedforward, sau đó tìm hiểu về các khái niệm liên quan đến lớp ẩn
(hidden layer), trong đó yêu cầu chúng ta lựa chọn hàm kích hoạt (activation functions) dùng để
tính toán các giá trị của lớp ẩn. Bên cạnh đó, tiểu luận còn xem xét các thiết kế kiến trúc của
mạng bao gồm bao nhiêu lớp trong một mạng, bao nhiêu unit trong một lớp,... Việc học trong
các mô hình mạng neural đòi hỏi việc tính toán gradients của các hàm phức tạp, điều này thực
hiện dựa trên các thuật toán back-propagation. Kết lại nội dung là một số khía cạnh lịch sử liên
quan đến mạng FeedForward. Bên cạnh đó, tiểu luận trình bày thêm một số thư viện xử lý ngôn
ngữ tự nhiên.
Phần tiếp theo của tiểu luận được tổ chức như sau. Các khái niệm cơ bản về mạng
Feedforward được giới thiệu trong phần I, trong đó cung cấp kiến thức về các thành phần của
một Feedforward. Phần II đưa ra một ví dụ về việc học XOR. Phần III đề cập đến việc học dựa
trên gradient. Những kiến thức về hidden unit sẽ được trình bày trong phần IV. Tiếp đó, các
quyết định liên quan đến thiết kế kiến trúc và thuật toán Back-propagation sẽ được cung cấp lần
lượt trong phần V và VI. Phần VII toán tắt sơ lược về khía cạnh lịch sử của FeedForward và phần
VIII trình bày về những thư viện xử lý ngôn ngữ tự nhiên. Phần cuối cùng đưa ra kết luận của bài
tiểu luận.

I.

GIỚI THIỆU VỀ DEEP FEEDFORWARD NETWORK

Deep Feedforward Networks, hay được gọi là Feedforward Neural Networks hoặc Multilayer
Perceptrons (MLPs), là mô hình học sâu cực kì quan trọng. Mục đích của Feedforward Network
là để xấp xỉ hàm . Lấy ví dụ, đối với bài toán phân loại, ánh xạ đầu vào thành nhãn phân loại . Ví
dụ củ thể hơn như bài toán cho vay của ngân hàng, để đánh giá xem một giao dịch của một

khách hàng có gian lân hay không, ngân hàng xây dựng một mô hình hay một hàm trong đó có


các đầu vào là các thông tin liên quan đến khách hàng đó như hôn nhân, thu nhập để đánh giá.
đến Một Feedforward Network định nghĩa và học giá trị của tham số để tìm được hàm xấp xỉ
tốt nhất.
Những mô hình như vậy được gọi là Feedforward bởi vì thông tin thông qua các bước tính
toán trung gian được định nghĩa bởi và cuối cùng đưa ra đầu ra . Sẽ không có feedback khi mà
kết quả đầu ra của node sẽ không quay trở lại trở thành đầu vào của chính node đấy. Khi mà
Feedforward Neural Network được mở rộng thêm cả phần feedback thì chúng được gọi là
Recurrent Neural Network.
Mạng Feedforward hình thành nền tảng cho rất nhiều ứng dụng thương mại quan trọng. Lấy
ví dụ, các Convolutional Networks – mạng chập được sử dụng cho nhận dạng đối tượng từ
những bức ảnh là một trường hợp cụ thể của Feedforward Network. Bên cạnh đó, Feedforward
còn là tiền đề cho việc học Recurrent Networks mà các Recurrent Networks này là nền tảng cho
các ứng dụng liên quan đến xử lý ngôn ngữ tự nhiên.
Feedforward Neural được gọi là các mạng bởi vì chúng thường được biểu diễn bằng cách kết
hợp nhiều hàm khác nhau. Ví dụ, chúng ta có thể có hàm được kết nối trong một chuỗi, để hình
thành . Cấu trúc chuỗi là những cấu trúc phổ biến Neural Networks. Trong trường hợp này được
gọi là lớp đầu tiên của mạng, được gọi là lớp thứ 2,... Chiều dài của chuỗi là độ sâu của mô hình.
Lớp cuối cùng của Neural Network được gọi là lớp output. Trong quá trình huấn luyện Neural
Network, chúng ta cố gắng xấp xỉ giống . Tập dữ liệu huấn luận bao gồm đầu vào và nhãn
tương ứng Những ví dụ training chỉ định trực tiếp lớp output phải làm ở mỗi điểm , nó phải
sinh ra giá trị mà gần với . Giá trị của các lớp khác không được chỉ định trực tiếp bởi tập dữ liệu
huấn luyện. Thuật toán học phải quyết định làm cách nào để sử dụng những lớp này để sinh ra
các đầu ra mong muốn, các dữ liệu huấn luyện không chỉ ra mỗi lớp này nên làm gì. Bởi vì tập
dữ liệu huấn luyện không chỉ ra output của mỗi lớp này, những lớp này được gọi là lớp ẩn.
Cuối cùng, những mạng networks này được gọi là neural bởi vì chúng được tạo cảm hứng từ
khoa học thần kinh –neuroscience. Mỗi một lớp ẩn của mạng là một vector. Chiều của lớp ẩn
này xác định bề rộng của mô hình. Mỗi một thành phần của vector đóng vai trò như một tế bào

thần kinh. Thay vì nghĩ lớp như là thể hiện một hàm vector sang vector, chúng ta có thể nghĩ lớp
này bao gồm nhiều units đóng vai trò song song, mỗi một unit thể hiện hàm chuyển từ vector
sang giá trị. Mỗi một unit giống như một tế bào thân kinh, nó nhận input từ nhiều đơn vị khác
và tính toán giá trị của nó.
Một cách để hiểu mạng feedforward là bắt đầu với các mô hình tuyến tính và xem xét làm
thế nào để vượt qua những những giới hạn của mô hình. Mô hình tuyến tính, giống như hồi quy
tuyến tính, hồi quy logistic rất tốt khi chúng hiệu quả với những thuật toán tối ưu lồi. Tuy nhiên
các mô hình tuyến tính thì chỉ giới hạn đối với các hàm tuyến tính, vì vậy mà mô hình không thể
hiểu được sự tương tác giữa 2 biến đầu vào.
Mở rộng mô hình tuyến tính để thể hiện hàm không tuyến tính của , chúng ta có thể không
áp dụng mô mình tuyến tính phải cho mà áp dụng cho đầu vào đã bị biến đổi , trong đó là


chuyển đổi không tuyến tính. Chúng ta có thể nghĩ về như là một tập các đặc trưng mô tả hay
cung cấp một các biểu hiện mới cho Lấy ví dụ, trong bài toán phân lớp máy vector hỗ trợ (SVM)
khi mà các lớp dữ liệu không thể phân tách tuyến tính, thuật toán SVM có thể sử dụng hàm
nhân( kernel function) để chuyển về không gian có số chiều cao hơn mà ở đó tập dữ liệu phân
tách tuyến tính.
Câu hỏi đặt ra sau đó là lựa chọn như thế nào.
1.
Lựa chọn đầu tiên là sử dụng generic , giống như chọn một vô hạn chiều. Nếu như có
số chiều đủ lớn, chúng ta có luôn có đủ khả năng để fit tập huấn luyện, tuy nhiên khái quát hóa
đối với tập test thường rất kém.
2.
Lựa chọn khác là tự tìm một cách thủ công. Cách tiếp cận này yêu cầu hàng thập kỉ của
những con người cho những tác vụ khác nhau cùng với các chuyên gia trong các lĩnh vực khác
nhau như thị giác máy tính hoặc nhận dạng giọng nói.
3.
Sử dụng học sâu để học Trong cách tiếp cận này, chúng ta có một mô hình . Chúng ta
bây giờ có tham số để học từ một lớp rộng lớn các hàm, có tham số dùng để ánh xạ từ thành

đầu ra mong muốn. Đây là một ví dụ về Deep Feedforward Network, với địnhn nghĩa một lớp
ẩn. Trong cách tiếp cận này, chúng ta tham số hóa cách biểu diễn và sử dụng thuật toán tối ưu
hóa để tìm phù hợp nhất.

II.

VÍ DỤ: HỌC XOR

Để giúp nắm bắt được tư tưởng của feedforward network, chúng ta sẽ bắt đầu một ví dụ đầy
đủ các chức năng của feedforward network trong một bài tập đơn giản: học hàm XOR.
Hàm XOR là một phép tính hai số nhị phân. Khi chỉ có đúng một trong hai số nhị phân có giá
trị bằng 1, hàm XOR sẽ trả về 1. Ngược lại, nó trả về 0. Hàm XOR là hàm chỉ định y=f*(x) mà
chúng ta muốn học. Mô hình của chúng ta là hàm y=f(x,θ), và thuật toán học sẽ điều chỉnh θ để
f càng giống f* càng tốt.
Trong ví dụ này, chúng ta sẽ không quan tâm đến tổng quát thống kê. Thứ chúng ta muốn là
network hoạt động chính xác trên 4 điểm X = {[0,0]⊤, [1,0]⊤, [0,1]⊤, và [1,1]⊤}. Chúng ta sẽ
huấn luyện network trên cả 4 điểm này. Thách thức duy nhất là khớp với training set.
Ta coi đây như một bài toán hồi quy và sự dùng hàm mất mát bình phương trung bình sai số
(MSE). Ta chọn hàm mất mát này là để đơn giản hóa ví dụ. Trong thực tế, MSE không phải là
một hàm chi phí thích hợp cho mô hình hóa dữ liệu nhị phân. Nhiều phương pháp phù hợp hơn
được mô tả trong phần 6.2.2.2.
Đánh giá trên training set, hàm mất mát MSE là:


Bây giờ chúng ta cần phải chọn mẫu của mô hình, f(x;θ). Giả sử rằng chúng ta chọn mô hình
tuyến tính, với θ gồm w và b. Mô hình của ta được định nghĩa:

Chúng ta có thể giảm thiểu J(θ) ở dạng đóng theo w và b bằng các phương trình chuẩn.
Sau khi giải các phương trình chuẩn, ta đạt được w = 0 và b = 0.5. Mô hình tuyến tính cho kết
quả 0.5 ở mọi điểm. Tại sao xảy ra điều này? Hình 6.1 cho thấy mô hình tuyến tính không có khả

năng đại diện cho hàm XOR. Gải pháp khác cho vấn đề này là sử dụng mô hình mà có thể học
không gian đặc trưng khác ở trong một mô hình tuyến tính có thể biểu diễn lời giải.
Đặc biệt, ta sẽ giới thiệu một feedforward network với một tầng ẩn chứa hai đơn vị ẩn. Xem
hình 6.2, một minh họa của mô hình này. Feedforward network có một vector các đơn vị ẩn h
được tính bởi hàm f1(x;W,c). Giá trị của các đơn vị ẩn đó sau đó được sử dụng làm đầu vào cho
tầng thứ hai. Tầng thứ hai là tầng đầu ra của network. Tầng đầu ra vẫn là một mô hình hồi quy
tuyến tính, nhưng bây giờ nó áp dụng với h thay cho x trước đó. Network bây giờ bao gồm hai
hàm nối với nhau, h=f1(x;W,c) và y=f2(h;w,b), với mô hình đầy đủ f(x;W,c,w,b)=f2(f1(x)).
f1 nên là hàm gì? Mô hình tuyến tính đã phục vụ rất tốt, và điều đó khiến cho ta muốn làm cho
f1 tuyến tính. Không may, nếu f1 tuyến tính, thì toàn bộ feedforward network vẫn là hàm tuyến
tính của đầu vào của nó. Bỏ qua điều kiện chặn lúc này, giả sử f1(x)=W⊤x và f2(h)=h⊤w.
Thì f(x)=x⊤Ww. Chúng ta có thể biểu diễn hàm này thành f(x)=x⊤w’ với w’=Ww.
Thế nên, chúng ta phải sử dụng một hàm phi tuyến tính để mô tả các đặc trưng. Hầu hết các
neural network sử dụng một phép biến đổi tịnh tiến điều khiển bởi các tham số đã học, theo
sau một hàm phi tuyến cố định gọi là hàm kích hoạt. Ở đây chúng ta sử dụng chiến lược đó,
bắng cách định nghĩa h=g(W⊤x+c), với W là trọng số của một phép biến đổi tuyến tính và các
hệ số tự do c. Trước đây, để mô tả một mô hình hồi quy tuyến tính, chúng ta sử dụng các vector
trọng số và một đại lượng vô hướng để mô tả một phép biến đổi tịnh tiến từ một vector đầu
vào thành một đại lượng vô hướng đầu ra. Bây giờ, chúng ta mô tả một phép biến đổi tuyến
tính từ một vector x thành một vector h, vì thế một vector các hệ số tự do là cần thiết. Hàm kích
hoạt g thường được chọn để làm hàm áp dụng cho từng phần tử, với hi=g(x⊤W:,i+ci). Trong
các neural network hiện đại, đề xuất mặc định là sử dụng rectified linear unit, viết tắt là ReLU
(Jarrettet al., 2009; Nair and Hinton, 2010; Glorot et al., 2011a), xác định bởi hàm kích hoạt
g(z)=max{0,z}, mô tả trong hình 6.3.


Hình 6.1: Giải quyết vấn đề XOR bằng cách học biểu diễn. Các số in đậm là giá trị đầu ra mà
hàm học phải cho ra trên mỗi điểm. (Hình bên trái) Mô hình tuyến tính áp dụng trực tiếp cho
đầu vào không thể triển khai hàm XOR. Khi x1 = 0, đầu ra của mô hình phải tăng khi x2 tăng. Khi
x1 = 1, đầu ra của mô hình phải giảm khi x2 tăng. Mô hình tuyến tính phải áp dụng một giá trị hệ

số cố định w2 theo x2. Mô hình tuyến tính do đó không thể sử dụng giá trị x1 để thay đổi hệ số
trên x2 và không thể giải bài toán này. (Hình bên phải) Trong không gian biến đổi được biểu diễn
bởi các đặc trưng được trích xuất từ một reural network, mô hình tuyến tính giờ có thể giải
được bài toán. Trong lời giải ví dụ, hai điểm có đầu ra bằng 1 đã được thu gọn thành một điểm
trong không gian đặc trưng. Cách khác, các đặc trưng phi tuyến tính đã ánh xạ cả x=[1,0]⊤ và
x=[0,1]⊤ thành một điểm trong không gian đặc trưng, h=[1,0]⊤. Mô hình tuyến tính giờ có thể
mô hàm khi tăng h1 và giảm h1. Trong ví dụ này, động lực cho học không gian đặc trưng chỉ là
làm cho sức chứa mô hình lớn hơn để nó có thể khớp training set. Trong nhiều ứng dụng thực
tế, học biểu diễn cũng có thể giúp mô hình khái quát hóa.

Hình 6.2: Ví dụ của một feedforward network, vẽ theo hai kiểu khác nhau. Đặc biệt, đây là
feedforward network ta dùng để giải ví dụ XOR. Nó có một tầng ẩn chứa hai đơn vị. (Hình bên
trái) Ở kiểu này, ta vẽ mỗi đơn vị là một nút trong đồ thị. Kiểu này thì rõ ràng, nhưng với các


network lớn hơn, nó có thể tốn nhiều không gian. (Hình bên phải) Ở kiểu này, ta vẽ một nút
trong đồ thị cho mỗi vector đại diện toàn bộ hoạt động của một tầng. Kiểu này gọn hơn nhiều.
Đôi khi ta chú thích các cạnh trọng đồ thị này với tên của các tham số mô tả mối quan hệ giữa
các tầng. Ở đây, chúng ta biểu thị một ma trận W mô tả ánh xạ từ x sang h, và một vector w mô
tả ánh xạ từ h sang y. Ta thường bỏ sót điều kiện chặn với mỗi tầng khi dán nhãn kiểu vẽ này.

Hình 6.3: Hàm kích hoạt rectified linear. Hàm kích hoạt này là hàm kích hoạt khuyến nghị sử
dụng với hầu hết các feedforward neural network. Áp dụng hàm này để đầu ra của phép biến
đổi tuyến thành biến đổi phi tuyến. Hàm này vẫn rất gần với tuyến tính, tuy nhiên, theo nghĩa
nó là hàm tuyến tính mảnh với hai mảnh tuyến tính. Bởi vì ReLU gần như tuyến tính, nên chúng
lưu trữ nhiều tích chất làm một mô hình tuyến tính dễ dàng tối ưu với các phương thức
gradient-based. Chúng cũng lưu trữ nhiều tính chất khiến mô hình tuyến tính khái quát hóa tốt.
Một nguyên tắc chung trong khoa học máy tính là chúng ta có thể xây dựng các hệ thống phức
tạp từ các components đơn giản. Giống như bộ nhớ của máy Turing chỉ có thể lưu trữ trạng thái
0 hoặc 1, ta có thể xây dựng một bộ xấp xỉ hàm phổ dụng từ các hàm rectified linear.


Chúng ta giờ có thể chỉ ra network hoàn thiện:


Sau đó ta có thể chỉ ra lời giải cho bài toán XOR. Lấy:
,
,
,
và b=0.
Giờ ta có thể theo dõi từng bước cách mô hình xử lí một loạt các đầu vào. Lấy X là ma trận bao
gồm 4 điểm trong không gian nhị phân đầu vào, với mỗi mẫu trên một dòng:
.
Bước đầu tiên là nhân ma trận đầu vào với ma trận trọng số tầng đầu tiên:
.
Tiếp theo, ta cộng vector hệ số tự do c, để đạt được:
.
Trong không gian này, tất cả các mẫu nằm dọc theo một đường có độ dốc là 1. Khi ta di chuyển
dọc theo đường này, đầu ra cần phải bắt đầu từ 0 , sau đó tăng lên 1, sau đó lại giảm xuống 0.
Mô hình tuyến tính không thể thực hiện chức năng như thế. Để kết thúc tính giá trị của h cho
mỗi mẫu, ta có thể áp dụng phép biến đổi rectified linear:
.
Phép biến đổi này đã thay đổi mối quan hệ giữa các mẫu. Chúng không còn nằm trên cùng một
dòng. Như hình 6.1, chúng giờ nằm trên một không gian mà mô hình tuyến tính có thể giải
quyết được.
Ta kết thúc bằng việc nhân với vector trọng số w:
.
Neural network đạt được câu trả lời đúng cho mỗi mẫu trong nhóm.
Trong ví dụ này, ta đã dùng lời giải đơn giản, sau đó cho thấy nó không có lỗi. Trong một tình
huống thực tế, có lẽ có hàng tỷ các mô hình tham số và hàm tỷ các mẫu training, vì thế không
thể có lời giải đơn giản như chúng ta đã làm. Thay vào đó, một thuật toán gradient-based tối

giản có thể tìm ra các tham số sinh ra ít lỗi. Lời giải của bài toán XOR là một cực tiểu toàn cục
của hàm mất mát, vì thế trượt gradient có thể hội tụ tới điểm này. Có các giải pháp tương
đương khác cho bài toán XOR mà khi trượt gradient ta tìm ra được. Điểm hội tụ của trượt
gradient phụ thuộc vào giá trị ban đầu của các tham số. Trong thực thế, trượt gradient thường
không tìm được lời giải sạch, dễ hiểu, giá trị số nguyên giống như chúng ta đã trình bày ở đây.


III. HỌC DỰA TRÊN GRADIENT
Thiết kế và huấn luyện một Neural Network bằng Gradient Descent không khác nhiều so với
việc huấn luyện các mô hình học máy khác. Việc xây dựng một thuật toán học máy sẽ bao gồm
việc chỉ định thủ tục tối ưu, một hàm mất mát và chọn một họ mô hình phù hợp.
Sự khác nhau chính giữa các mô hình tuyến tính và Neural Network chính là tính không
tuyến tính của một Neural Network khiến cho các hàm mất mát của nó trở nên không lồi (noncovex). Điều đó có nghĩa là các Neural Network sẽ thường xuyên được huấn luyện dựa trên các
thuật toán tối ưu dựa trên gradient, điều này khiến cho hàm mất mát có giá trị thấp thay vì sử
dụng các phương pháp giải phương trình tuyến tính được sử dụng trong mô hình hồi quy tuyến
tính hay các thuật toán tối ưu lồi (convex optimization algorithms) với sự đảm bảo global
convergance được sử dụng để huấn luyện hồi quy logistic hay SVMs. Tối ưu lồi có thể khởi tạo
tham số bằng bất cứ giá trị nào. Stochastic gradient descent áp dụng đối với các hàm mất mát
không lồi với không có bất cứ sự đảm bảo sự hội tụ nào và vì thế giá trị khởi tạo cho tham số rất
quan trọng. Đối với Feedforward Neural Networks, chúng ta thường khởi tạo các trọng số
(weights) giá trị nhỏ và bias bằng không hoặc những giá trị dương nhỏ.
Chúng ta hoàn toàn có thể huấn luyện mô hình hình như hồi quy tuyến tính và SVMs bằng
gradient decent và thực tế điều này là phổ biến khi mà tập huyến luyện cực kì lớn. Từ điểm nhìn
này, việc huấn luyện một Neural Network không quá khác biệt so với việc huấn luyện các mô
hình khác. Việc tính toán gradient phức tạp hơn đối với một Neural Network, nhưng hoàn toàn
vẫn có thể thực hiện hiện được một các hiệu quả và chính xác. Phần VI sẽ mô tả làm cách nào
để tính được gradient bằng việc sử thuật toán back-propagation và sự khai quát hóa của thuật
toán back-propagation này.
Như đối với các mô hình học máy khác, để áp dụng việc học dựa trên gradient chúng ta cần
phải lựa chọn một hàm mất mát và lựa chọn các để biểu diễn đầu ra của mô hình.


1.

Hàm mất mát – Cost function

Một khía cạnh quan trọng của việc thiết kế một Neural Network là việc lựa chọn hàm mất mát.
Nhưng thật may, các hàm mất mát cho các Neural Network gần như tương tự như đối với các
mô hình tham số khác như mô hình tuyến tính.
Trong hầu hết các trường hợp, mô hình tham số của chúng ta định nghĩa một phân bố và
chúng ta sau đó đơn giản sử dụng maximum likelihood để tìm ra hàm mất mát. Điều đó có
nghĩa là chúng ta sử dụng cross-entropy giữa tập huấn luyện và kết quả dự đoán của mô hình
như là cost function.
Tuy nhiên, chúng ta thỉnh thoảng lấy một cách tiếp cận đơn giản hơn, thay vì dự đoán toàn
bộ phân bố xác suất của biến , ta chỉ đơn thuần dự đoán một số thông số của khi đã biết .
Những hàm mất mát chuyên biệt cho phép chúng ta huấn luyện những mô hình như vậy.
Hàm mất mát đầy đủ được huấn luyện Neural Network bao gồm hàm mất mát chính (là hàm
ta rút ra được dựa trên maximum likelihood) cùng với regularization term.


1.1 Học phân bố có điều kiều bằng Maximum Likelihood
Hầu hết các Neural Network được huấn luyện sử dụng maximum likelihood. Điều này có nghĩa
là hàm mất mát đơn giản là negative log-likelihood, tương đương như cross-entropy giữa tập
huấn luyện và phân bố của mô hình. Hàm mất mát này có dạng:

Một lợi thế của cách tiếp cận rút ra được hàm mất mát từ maximum likelihood là nó sẽ xóa bỏ
gánh nặng của việc thiết kế hàm mất mát cho mỗi một mô hình. Việc chỉ định một mô hình tự
động xác định hàm mất mát
Một chủ đề xuyên suốt việc thiết kế Neural Network là gradient của hàm mất mát phải đủ lớn
và dễ dự đoán để khiến cho việc học trở nên dễ dàng hơn. Những hàm mà bão hòa (saturate)
khiến cho gradient của hàm này rất nhỏ. Trong nhiều trường hợp điều này xảy ra bởi vì các hàm

kích hoạt (activation functions) được sử dụng để tạo ra đầu ra của các đơn vị ẩn hoặc output
units bão hòa. Negative log-likihood tránh cho trường hợp này xảy ra đối với nhiều mô hình.
Nhiều output units bao gồm các hàm mũ và khi các đối số rất âm chúng trở nên bão hòa. Hàm
logarit trong negative log-likelihood triệt tiêu hàm mũ trong các output units. Chúng ta sẽ thảo
luận mối quan hệ giữa hàm mất mát và lựa chọn đơn vị đầu ra trong phần 2 của chương này.
1.2 Học thống kê có điều kiện
Thay vì học hoàn toàn một phân bố xác suất chúng ta muốn học chỉ một thống kê có điều kiện
của khi biết
Lấy ví dụ, chúng ta có mô hình , chúng ta mong muốn mô hình dự đoán mean của
Chúng ta có thể nghĩ việc học như là việc lựa chọn một hàm hơn là chỉ lựa chọn một tập các
tham số. Chúng ta có thể thiết kế hàm mất mát mà giá trị nhỏ nhất của nó xảy ra ở một số hàm
cụ thể mà chúng ta mong muốn. Lấy ví dụ, chúng ta có thể thiết kế hàm mất mát mà giá trị nhỏ
nhất nằm trên hàm mà ánh xạ với giá trị mong đợi Giải quyết các bài toán tối ưu liên quan đến
một hàm yêu cầu một công cụ gọi là calculus of variations. Công cụ này sẽ không được trình bày
trong tiểu luận này, tuy nhiên với công cụ này ta rút ra được 2 kết quả sau.
Kết quả đầu tiên chúng ta rút được sử dụng calculus of variations trong giải quyết bài toán
tối ưu
Ta thu được:

Nếu chúng ta có thể huấn luyện với một tập vô hạn các mẫu được rút ra từ dữ liệu thực
nghiệm, giảm tối đa MSE sẽ đem lại hàm số dự đoán mean của cho mỗi giá trị của .
Kết quả thứ hai rút ra được dựa trên calculus of variations


Ta thu được median của cho mỗi . Hàm mất mát này được gọi là mean absolute error.
Tuy nhiên, mean absolute error và mean absolute error thường dẫn đến kết quả tệ khi được
sử dụng với thuật toán tối ưu dựa trên gradient. Một vài output unit bão hòa dẫn đến gradients
nhỏ khi kết hợp với các hàm mất mát này. Đó là lý do cross entropy phổ biến hơn mean squared
error hoặc mean sqared error.


2.

Output units

Việc lựa chọn hàm mất mát liên quan chặt chẽ với việc lựa chọn output unit. Hầu hết thời gian
chúng ta đơn giản sử dụng cross-entropy giữa phân bố của dữ liệu và mô mô hình phân bố của
chúng ta. Việc lựa chọn cách biểu diễn đầu ra xác định dạng cảu hàm cross-entropy.
Bất kì đơn vị neural network được sử dụng như là output unit cũng có thể được sử dụng như
hidden unit. Bây giờ, chúng ta tập trung vào việc sử dụng những units này như là đầu ra của mô
hình, nhưng chúng cũng có thể được sử dụng ở các hidden layer.
Thông qua phần này , tiểu luận giả định rằng Feedforward Network cung cấp một tập các đặc
trưng ẩn được định nghĩa bởi Vai trò của output layer là cung cấp thêm một số chuyển đổi từ
các feature này to hoàn thành tác vụ mà mô hình mạng phải thực hiện.
2.1 Linear units for phân bố Gausian
Một loại đầu ra đơn giản của output unit là đơn vị đầu ra dựa trên biến đổi affine. Chúng
thường được gọi là các đơn vị tuyến tính.
Nhận được đặc trưng , một lớp các linear output units tạo ra một vecto
Các lớp linear output thường xuyên được sử dụng để tạo ra mean của phân bố Gaussian có
điều kiện

Tìm giá trị lớn nhất của log-likelihood tương đương với tìm giá trị cảu mean squared error.
Bởi vì linear units không bão hòa, chúng không gây nhiều khó khăn cho các thuật toán tối ưu
dựa trên gradient và được sử dụng với nhiều thuật toán tối ưu.
2.2 Sigmoid Units cho phân bố Bernoulli
Nhiều nhiệm vụ yêu cầu dự đoán giá trị của biến nhị phân . Các bài toán phân loại với hai lớp
có thể nằm trong dạng này.
Cách tiếp cận Maximum-likelihood sẽ định nghĩa phân bố Bernoulli qua dựa trên điều kiện
Một phân bố Bernoulli được định nghĩa chỉ bởi một số. Mạng Neural Network chỉ cần dự
đoán . Giá trị của xác suất này phải nằm trong khoảng [0.1]. Cách tiếp cận này dựa trên đơn vị
đầu ra sigmoid kết hợp với maximum likelihood đảm bảo được điều này và luôn cho gradient

mạnh bất kì khi nào mô hình đưa ra đáp án sai.
Một đơn vị đầu ra sigmoid được định nghĩa:


Trong đó là hàm logistic sigmoid.
Chúng ta có thể nghĩ output unit sigmoid có 2 thành phần. Đầu tiên, nó sử dụng một lớp tuyến
tính để tính toán. Tiếp theo, nó sử dụng hàm sigmoid dể chuyển thành xác xuất.
Tại sao lại là hàm sigmoid? Điều đó có thể được lý giải như sau. Đầu tiên chúng ta xây dựng
nên một phân bố xác suất không chuẩn, tức là tổng lại bằng 1. Chúng ta sau đó chia cho một hệ
số thích hợp để đạt được phân bố xác suất có tổng bằng 1. Nếu chúng ta bắt đầu với giả thiết
rằng phân bố log xác suất không chuẩn tuyến tính với và . Sau đó, chúng ta mũ cả 2 vế để đạt
thu được phân bố xác suất không chuẩn. Sau đó chúng chuẩn hóa để thu được phân bố
Bernulli. Và dạng chuẩn này có dạng là một signmoid.

Phân bố xác suất dựa trên mũ và chuẩn hóa phổ biến thông qua mô hình thống kê. Biến z
định nghĩa phân bố qua biến nhị phân được gọi là logit
Bởi vì hàm mất mát được sử dụng với maximum likelihood là , hàm trong hàm mất mát triệt
tiêu hàm mũ của sigmoid. Hàm mất mát

Khi chúng ta sử dụng các hàm mất mát khác, như mean squared error, hàm mất mát có thể
bão hòa bất kì khi nào bão hòa. Hàm kích hoạt sigmoid bão hòa về 0 khi rất âm hoặc bão hòa về
1 khi rất dương.

2.3 Softmax Units cho phân bố Multinoulli
Bất cứ khi nào chúng ta muốn biểu diễn một phân bố xác suất qua một biến rời rạc với giá trị,
chúng ta có thể sử dụng hàm softmax. Điều này có thể được nhìn như là sự khái quát hóa của
hàm sigmoid khi được sử dụng để biểu diễn phân bố xác suất thông qua một biến nhị phân.
Hàm softmax hầu như được sử dụng như đầu ra của bài toán phân loại, để biểu diễn phân
bố xác suất qua lớp khác nhau. Hiếm khi hơn, hàm softmax có thể được sử dụng bên trong mô
hình, nếu chúng ta mong muốn mô hình để lựa chọn giữa 1 trong lựa chọn khác nhau đối với

một vài biến bên trong.
Trong trường hợp các biến nhị phân, chúng ta muốn sinh ra 1 số

Bởi vì số này nằm giữa 0 và 1 và bởi vì chúng ta muốn logarithm của số này phù hợp với
thuật toán tối ưu dựa trên gradient, thay vì đó chúng ta lựa chọn một số . Mũ và chuẩn hóa đưa
cho chúng ta phân bố Becnulli được kiểm soát bởi hàm sigmoid.


Để khái quát hóa cho trường hợp biến rời rạc với giá trị, chúng ra cần sinh ra vector , với .
Chúng ta yêu cầu không chỉ mỗi thành phần trong y nằm trong khoảng 0 và 1 mà tổng của
vector bằng 1 để nó thể hiện một phân bố xác suất hợp lý. Cách tiếp cận tương tự như đối với
phân bố Becnuli tổng quát hóa cho phân bố nhiều giá trị. Đầu tiên một lớp tuyến tính dự đoán
xác xuất không chuẩn.
Trong đó Hàm softmax có thể mũ và chuẩn hóa để đạt được mong muốn. Hàm softmax được
cho bởi:
Như đối với hàm logistic sigmoid, việc sử dụng hàm mũ hiệu quả khi training hàm softmax tới
đầu ra y sử dụng maximum log-likelihood. Trong trường hợp này, chúng ta mong muốn
maximize

IV. ĐƠN VỊ ẨN
Cho đến nay chúng ta đã tập trung thảo luận về việc lựa chọn thiết kế cho các mạng thần kinh
phổ biến với hầu hết các mô hình được tối ưu hóa dựa trên gradient. Bây giờ chúng ta chuyển
sang một vấn đề riêng của mạng nơron truyền thẳng: Sử dụng loại đơn vị ẩn nào trong các lớp
ẩn của mô hình.
Một số đơn vị ẩn ko khả vi tại tất cả các điểm đầu vào. Ví dụ hàm g(z) = max (0, z) không khả vi
tại z = 0. Vì vậy trong trường hợp này hàm g sẽ không áp dụng được các thuật toán gradient. Có
các đơn vị ẩn không khả vi được ở một số ít điểm, khi mà đạo hàm trái và đạo hàm phải tại
điểm đó không bằng nhau. Tuy nhiên chương trình thường sẽ trả về một trong 2 đạo hàm chứ
ko báo cáo đạo hàm ko xác định hay lỗi. Do đó ta có thể bỏ qua tính không khả vi của các hàm
kích hoạt của đơn vị ẩn được môt tả bên dưới.

Các đơn vị ẩn được phân loại dựa vòa hàm kích hoạt nó sử dụng. Phần này sẽ giới thiệu một số
loại đơn vị ẩn : Rectified linear Unit,

1.

Rectified Linear Units(ReLU) và các biến thể của nó.


ReLU sử dụng hàm kích hoạt có dạng: g(z) = max{0, z}. Hàm trả về không với đầu vào z âm và
trả về z với đầu vào z dương, khá tương tự với đơn vị tuyến tính.
Ưu điểm của loại đơn vị ẩn ReLU là tính toán nhanh và không bị bão hòa. Bằng 0 khi z âm và z
khi z dương. Gradient của nó cũng được tính cực nhanh bằng 0 hoặc 1 phụ thuộc vào đầu vào z.
Tuy nhiên khi sử dụng ReLU chúng ta gặp phải một hiện tượng đó là Dying ReLUs. Đây là hiện
tượng neuron sẽ chỉ cho ra giá trị Output là 0 trong quá trình training. Hiện tượng này xảy ra khi
trọng số của neuron được cập nhật nhỏ dẫn đến input z nhỏ (tiến gần về 0) output trả về bằng 0.
Đồng thời gradient cũng bằng 0 nên trọng số không được cập nhật khiến quá trình trên lạp lại
dẫn đến hiện tượng chết ReLU. Khi một ReLU kết thúc ở trạng thái này, nó sẽ rất khó để phục hồi.
Để giải quyết vấn đề này thì chúng ta sẽ dùng một số biến thể của ReLU. Những biến thể này
hoạt động tương đương vơi ReLU hoặc tốt hơn. Ta không thể tìm hiểu ReLU thông qua phương
thức gradient khi mà Ouput tả về bằng 0. Các biến thể của ReLU đảm bảo chúng có gradient
khác không ở mọi điểm.
Ba biến thể được xây dựng trên công thức:
hi = g( z, α ) i = max(0, zi) + αimin(0, zi ) với hệ số góc ai khác không
Ở đây alpha có tác dụng điều chỉnh gradient của hàm khi z < 0. Thay vì bằng 0 như trong ReLU
output sẽ có giá trị thay đổi, tránh được hiện tượng dying ReLUs.
Absolute value rectificationđiều chỉnh hệ số góc αi = -1. Ta có hàm g(z) = |z|(hàm trị tuyệt đốiABS).

Biến thể này được sử dụng cho việc nhận dạng các đối tượng hình ảnh. Với ABS như một hàm
kích hoạt các đặc trưng sẽ ko thay đổi khi đảo ngược cực ánh sáng.
Leaky ReLU giảm αi tới một giá trị nhỉ như 0.01 có gradient nhỏ cho các giá trị âm, thay vì hoàn

toàn bằng không.
Parametric ReLU (PReLU) xử lý hệ số góc αi như một parametric (được thay đổi trong quá trình
backpropagation) thay vì là một hyperparameter
Maxout unit một biến thể khác cải tiến từ ReLU. Trả về sẽ là phần tử lớn nhất trong đầu vào.


g(z)i = maxj∈G(i) zj
G(i) là tập hợp các phần tử của nhóm i: (ik+1-k, …, ik) với k phần tử
Đơn vị MaxOut áp dụng để learn với tuyến tính theo từng khoảng, tập lồi với k phần tử. Một
mô hình MLP với 2 đơn vị Maxout có thể học để thực hiện chức năng giống với một mô hình
truyền thống sử dụng hàm kích hoạt ReLU hay ABS, leaky ReLU hay PReLU hay bất cứ một hàm
nào khác.
Một số trường hợp nó có thể tính toán được với ít tham số hơn. Cụ thể khi các tính năng được
ghi lại bởi các bộ lọc tuyến tính khác nhau, Maxout Unit có thể tổng hợp lại mà ko hề làm mất
thông tin. Bởi vì mỗi Unit được điều khiển bởi nhiều bộ lọc, đơn vị Maxout có thể giúp chúng
không bị lãng quên (mạng quên những gì nó đã được học trước đó)
ReLU và các biến thể sử dụng tốt với các mô hình mà biểu diễn gần giống với tuyến tính. Ngoài
ra ReLU còn được áp dụng cả với các mạng khác như mạng hồi quy. Mạng hồi quy có thể học từ
các trình tự và tạo ra một chuỗi các trạng thái và đầu ra. Khi đào tạo chúng, việc cần truyền
thông tin qua từng khoảng thời gian trở nên dễ dàng hơn khi mà các phép tính tuyến tính (có
đạo hàm theo hưỡng xấp xỉ 1) lại khá phức tạp.
Một trong những kiến trúc mạng hồi quy tốt nhất, LSTM (bộ nhớ dài hạn), có thể lưu trữ thông
tin trong suốt tg dài thông qua việc tổng hợp các kích hoạt tuyến tính trên một băng truyền
chạy xuyên suốt mô hình.

2.

Logistic sigmoid và hyperbolic tangen

Một trong những hàm kích hoạt phi tuyến khá phổ biến trong những giai đoạn đầu của neural

networks là hàm kích hoạt logistic sigmoid: g(z) = σ(z) và hàm tanh: g(z) = tanh(z). Hai hàm này
khá tương tự nhau với tanh(z) = 2σ(2z) – 1.
Hàm Sigmoid:


Quan sát hàm Sigmoid chúng ta thấy hàm sẽ chuyển đổi các đầu vào thành các giá trị nằm trong
khoảng (0, 1) - khá phù hợp khi chúng ta muốn tính toán xác suất hay thực hiện các bài toán
phân lớp. Tuy nhiên khi các đầu vào khá lớn (âm hoặc dương), hàm này sẽ bão hòa tại 0 và 1, và
đạo hàm sẽ rất gần với 0 (như trong hình minh họa). Gradients nhỏ sẽ khiến cho quá trình
backpropagation trở nên khó khăn hơn.

Quan sát đồ thị đạo hàm của Sigmoid chúng ta thấy global maximum là tại 0.25 và đồ thị có
tiệm cận tại 0. Nói cách khác output của đạo hàm hàm sigmoid sẽ nằm trong khoảng nửa
đóng (0, 0.25]. Trong quá trình truyền ngược, gradient (cục bộ) sẽ được nhân với gradient của
đầu ra. Điều này có nghĩa mỗi khi đi qua một lớp có chứa hàm kích hoạt sigmoid, đạo hàm trọng
số sẽ chỉ nhận giá trị tối đa là ¼ lần trước đó. Càng gần lớp INPUT giá trị đạo hàm càng nhỏ. Nếu
mạng neuron chứa nhiều lớp với nhiều unit sử dụng hàm kích hoạt sigmoid thì trọng số của các
Unit sẽ gần như không được cập nhật, số vòng lặp ta cần training càng nhiều, thậm chí bất khả
thi.
Vì vậy mà hàm Sigmoid không còn được sử dụng phổ biến. Thay vào đó ta sử dụng các đơn vị
Sigmoid như đơn vị Output khi giá trị đích mong muốn trong khoảng từ 0 đến 1. Đơn vị Sigmoid
cũng được dùng phổ biến với các mạng khác hơn là mạng truyền thẳng như mạng hồi quy, mô
hình xác suất, hay các bộ tự động.
Khi bắt buộc phải sử dụng Sigmoid thì ta sẽ dùng hàm kích hoạt tanh. Nó khá giống với hàm
đồng nhất (identity function) tanh (0) = 0 trong khi σ (0) = ½. Vì vậy huấn luyện mạng thần kinh
sâu yˆ = wT tanh (UT tanh (VT x)) giống với huần luyện một mô hình tuyến tính yˆ = wTUT VTx
chừng nào activation vẫn nhỏ.


3.


Một số đơn vị ẩn khác

Có khá nhiều loại đơn vị ẩn khác đã được sử dụng hay đang nghiên cứu. Tuy nhiên chúng
không được sử dụng phổ biến như các đơn vị ẩn được nhắc ở trên.
Có nhiều hàm kích hoạt chưa được xuất bản nhưng hoạt động tốt như các hàm phổ biến. Để
cung cấp một ví dụ cụ thể, chúng tôi đã thử nghiệm mạng feedforward bằng cách sử dụng h =
cos (Wx + b) trên bộ dữ liệu MNIST và thu được tỷ lệ lỗi dưới 1%, cạnh tranh với kết quả thu
được bằng cách sử dụng các hàm kích hoạt thông thường hơn. Trong quá trình nghiên cứu và
phát triển các kỹ thuật mới, việc kiểm tra các hàm kích hoạt đa dạng là phổ biến và một số biến
thể về dạng thực hành tiêu chuẩn có thể so sánh được. Điều này có nghĩa là các loại đơn vị ẩn
mới thường chỉ được xuất bản nếu chúng được chứng minh rõ ràng để cung cấp một cải tiến
đáng kể. Các loại đơn vị ẩn mới hoạt động gần như tương đương với các loại đã biết là rất phổ
biến để trở nên không thú vị.
Một số loại đơn vị ẩn đặc biệt và hữu ích:
Các nhà phát triển đã từng nghĩ đến không sử dụng một hàm kích hoạt g(z) cho các đơn vị ẩn.
Thay vào đó ta sử dụng một đơn vị tuyến tính như một đơn vị ẩn. Như thế ta sẽ có được một
mô hình tuyến tính. Xem xét một lớp mạng nơron với n đầu vào và p đầu ra h = g(W T x + b).
Ta có thể thay nó bằng 2 lớp, một sử dụng ma trận trọng số U và một sử dụng ma trận trọng số
V. Lớp đầu ko có hàm kích hoạt, ta có h = g(VTU T x + b).
Trong khi với ma trận trọng số W ta cần có np tham số thì trường hợp này ta chỉ cần (n+p)*q
tham số. Với giá trị q nhỏ nó sẽ giúp giảm thiểu đáng kể số lượng tham số. Do đó các đơn vị ẩn
tuyến tính hiệu quả giảm tham số trong mạng.
Đơn vị Softmax thường được dùng làm đơn vị Output nhưng đôi khi cũng được sử dụng như
đơn vị ẩn. Nó được dùng cho những mô hình cao cấp hơn cần học cách thao tác với bộ nhớ.
Đơn vị ẩn sử dụng hàm kích hoạt Radial Basis (RBF):

Hàm sẽ hoạt động tốt hơn khi x tiến gần đến W. VÌ kết quả bão hòa tời 0 cho mọi x nên khó tối
ưu
Softplus

Đây là một phiên bản ReLU trơn tru hơn. Thực hiện so sánh và nó cho kết quả tốt hơn. Tuy
nhiên lại ko được khuyến khích sử dụng do nó không giải quyết được nhược điểm của ReLU như
không khả vi tại mọi điểm và đầu ra cũng bão hóa giống với ReLU.
Hard tanh: tương tự với tanh và rectified . Nó tả về kết quả từ -1 đến 1
g(a) = max (−1, min (1, a))


Các mẫu đơn vị ẩn là một lĩnh vực được nghiên cứu tích cực. Có nhiều loại đơn vị ẩn có sẵn.
Trong đó Rectified Linear Unit là mẫu đơn vị ẩn được lựa chọn mặc định. Để xác định được khi
nào dùng loại đơn vị ẩn nào là một vấn đề khó. Trên đây là mô tả về một số loại đơn vị ẩn thông
dụng. Mô tả này sẽ giúp ích cho việc chọn lựa đơn vị ẩn thích hợp nhưng không nói trước được
loại nào sẽ hoạt động tốt nhất. Quá trình thiết kế bao gồm thử và sai, thử với từng loại đơn vị
ẩn và đánh giá hiệu suất đến khi nào tìm được loại đơn vị ẩn hiệu quả và phù hợp nhất.

V.

THIẾT KẾ KIẾN TRÚC

Một thiết kế quan trọng khác cho mạng nơ-ron là xác định kiến trúc. Từ cấu trúc tổng thể của
cấu trúc mạng: có bao nhiêu đơn vị cần có và cách các đơn vị này được kết nối với nhau. Các
mạng nơ-ron được tổ chức thành các nhóm đơn vị được gọi là các lớp. Hầu hết các kiến trúc
mạng nơ-ron sắp xếp các lớp này trong một cấu trúc chuỗi, với mỗi lớp là một hàm của lớp
đứng trước nó.
Trong cấu trúc này, lớp đầu tiên được đưa ra bởi:
h(1) – g(1) (W(1)Tx + b(1));
lớp thứ 2 được cho bởi
h(2) – g(2) (W(2)Th(1) + b(2));
và như trên.
Trong các kiến trúc dựa trên chuỗi này, các kiến trúc chính là chọn độ sâu của mạng và
chiều rộng của mỗi lớp. Như chúng ta thấy, một mạng có một lớp ẩn là đủ để tập huấn luyện.

Các mạng thường có thể sử dụng ít đơn vị hơn cho mỗi lớp và ít tham số hơn, cũng như thường
xuyên tổng quát hóa cho nhóm thử nghiệm, nhưng chúng cũng có xu hướng khó tối ưu hóa
hơn. Kiến trúc mạng lý tưởng được tìm thấy thông qua thử nghiệm được hướng dẫn bằng cách
giám sát lỗi thiết lập xác nhận.

1. Tính chất và độ sâu xấp xỉ phổ dụng
Một mô hình tuyến tính, ánh xạ từ các đối tượng đến các đầu ra thông qua phép nhân ma trận,
có thể bằng cách xác định các hàm tuyến tính. Nó có lợi thế là được dễ dàng bởi vì nhiều chức
năng mất kết quả trong các vấn đề tối ưu hóa lồi khi áp dụng cho các mô hình tuyến tính. Thật
không may, chúng ta thường muốn hệ thống của chúng ta học các hàm phi tuyến tính.


Thoạt nhìn, chúng ta có thể đoán rằng việc học một hàm phi tuyến tính đòi hỏi phải thiết kế
một mô hình chuyển giao cho loại phi tuyến tính mà chúng ta muốn học. Thật may, các mạng
feedforward với các lớp ẩn cung cấp một khung công tác phổ biến. Cụ thể, định lý xấp xỉ phổ
biến (Horniket al., 1989; Cybenko, 1989) nói rằng một mạng feedforward với một lớp đầu ra
tuyến tính và ít nhật một lớp ẩn với bất kỳ chức năng kích hoạt “bẻ khóa” nào (như chức năng
kích hoạt sigmoid ligistic) Borel có thể đo lường chức năng từ một không gian có hạn đến một
không gian khác với bất kỳ lỗi không mong muốn nào của lỗi, miễn là mạng đó được cung cấp
đủ các đơn vị ẩn. Các dẫn xuất của mạng feedforward cũng có thể ước lượng các dẫn xuất của
hàm số một cách tùy ý (Hornik et al., 1990). Khái niệm về khả năng đo lường Borel vượt ra ngoài
phạm vi của cuốn sách này; cho các mục đích của chúng ta, chúng ta nói rằng hàm không liên
tục trên một tập hợp con bị đóng và giới hạn của Rn là Borel có thể đo lường và do đó có thể
được xấp xỉ bởi một mạng nơ-ron. Một mạng nơ-ron cũng có thể ước lượng bất kỳ ánh xạ hàm
nào từ bất kỳ khoảng trống rời rạc nào khác với chiều khác. Trong khi các định lý ban đầu lần
đầu tiên được nêu trong các đơn vị chức năng khử hoạt tính bão hòa cho cả hai lý thuyết rất
tiêu cực và rất tích cực, các định lý xấp xỉ phổ quát cũng đã được chứng minh cho các chức năng
kích hoạt của lớp rộng hơn, bao gồm tuyến tính trực tiếp thường được sử dụng (Leshno et al.,
1993).
Định lý xấp xỉ phổ quát có nghĩa là bất kể hàm nào mà chúng ta cố gắng tìm hiểu, chúng ta biết

rằng một MLP lớn sẽ có thể biểu diễn hàm này. Tuy nhiên, chúng ta không được đảm bảo rằng
thuật toán đào tạo sẽ có thể học được chức năng đó. Ngay cả khi MLP có thể đại diện cho hàm,
việc học có thể thất bại vì hai lý do khác nhau. Đầu tiên, thuật toán tối ưu hóa được sử dụng
cho đào tạo có thể không xác định giá trị của các tham số tương ứng với hàm mong muốn. Thứ
hai, thuật toán đào tạo có thể chọn sai chức năng là kết quả của việc quá tải. Nhắc lại từ phần
5.2.1 rằng không có định lý ăn trưa miễn phí cho thấy rằng không có thuật toán học máy phổ
thông cao. Các mạng đơn giản cung cấp một hệ thống phổ quát để biểu diễn các hàm trong
điều kiện đó, cho một hàm có tồn tại một mạng feedforward gần đúng chức năng. Không có thủ
tục phổ quát nào để kiểm tra một tập các ví dụ cụ thể và chọn một hàm sẽ tổng quát hóa các
điểm không nằm trong tập đào tạo.
Theo định lý xấp xỉ phổ quát, tồn tại một mạng lưới rộng lớn để đạt được bất kỳ mức độ chính
xác nào mà chúng ta mong muốn, nhưng định lý không cho biết mạng này sẽ lớn đến cỡ nào.
Barron (1993) cũng có một số giới hạn trên mạng lưới một lớp cần thiết để ước tính tính một
lớp rộng các hàm. Thật không may, trong trường hợp xấu nhất, một số mũ của các đơn vị ẩn (có
thể là một đơn vị ẩn tương ứng với mỗi con số đầu vào cần phải được phân biệt) có thể được
yêu cầu. Điều này dễ thấy nhất trong trương hợp nhị phân: số lượng các hàm nhị phân có thể có
trên vectors v ∈ {0,1}n là và chọn một hàm như vậy yêu cầu 2n bits, mà nói chung sẽ yêu cầu
O(2n) độ lệch chuẩn.
Tóm lại, một mạng feedforward với một lớp duy nhất là đủ để đại diện cho chức năng, nhưng
lớp có thể là vô cùng lớn và có thể không học và tổng quát một cách chính xác. Trong nhiều
trường hợp, việc sử dụng các mô hình sâu hơn có thể làm giảm số lượng đơn vị cần thiết để đại
diện cho hàm mong muốn và có thể giảm thiểu số lượng lỗi tổng quát.


Các gia đình khác nhau của các hàm có thể được xấp xỉ một cách rõ ràng bởi độ sâu kiến trúc
lớn hơn một số giá trị, nhưng chúng đòi hỏi một mô hình lớn hơn nhiều nếu chiều rộng bị hạn
chế nhỏ hơn hoặc bằng. Trong nhiều trường hợp, số lượng các đơn vị ẩn được yêu cầu bởi mô
hình nông là số mũ theo n.

Kết quả như hình 6.5: Một giải thích trực quan, hình học về lợi thế theo cấp số nhân của các

mạng trực tiếp sâu hơn chính thức của Mintufar và cộng sự (2014). (Trái) Một đơn vị trực tiếp
giá trị tuyệt đối có cùng đầu vào của nó. Phản chiếu đối xứng được đưa ra bởi siêu phẳng được
xác định bởi trọng số và độ lệch của đơn vị. Một hàm được tính toán trên đầu trang của đơn vị
đó (bề mặt xanh quyết định) sẽ là một hình ảnh phản chiếu của một mẫu đơn giản trên trục đối
xứng đó. (Giữa) chức năng có thể thu được bằng cách gấp đôi khoảng trống xung quanh trục
đối xứng. (Phải) Một mẫu lặp lại khác có thể được xếp trên đỉnh đầu tiên (bởi có đơn vị hạ lưu
khác) để thu được một đối xứng khác (được lặp lại bốn lần, với hai lớp ẩn). Hình được sao chép
với sự cho phép của Montufar và cộng sự (2014).
Lần đầu tiên được chứng minh cho các mô hình không giống với các mạng nơ-ron liên tục, di
động được sử dụng để học máy nhưng từ đó đã được mở rộng cho các mô hình này. Kết quả
đầu tiên là cho các mạch logic (Håstad, 1986). Công việc sau này đã mở rộng các kết quả này tới
các đơn vị ngưỡng tuyến tính với các trọng số không âm (Håstad và Goldmann, 1991; Hajnal và
cộng sự., 1993), và sau đó đến các mạng có hoạt hóa có gián trị liên tục (Maass, 1992; Maass và
cộng sự, 1994). Nhiều mạng nơ-ron hiện đại sử dụng các đơn vị tuyến tính trực tiếp. Leshno et
al. (1993) đã chứng minh rằng các mạng nông với một loạt các chức năng kích hoạt không đa
thức, bao gồm các đơn vị tuyến tính trực tiếp, có cá tính chất gần đúng phổ quát, nhưng những
kết quả này không giải quyết các câu hỏi về độ sâu hoặc hiệu quả - chúng chỉ xác định rằng một
mạng trực tiếp toàn diện có thể đại diện cho bất kỳ chức năng nào. Montufar và cộng sự (2014)
và cộng sự đã chỉ ra rằng các hàm có thể biểu diễn với một mạng trực tiếp sâu có thể yêu cầu số
lượng các đơn vị ẩn theo cấp số nhân với mạng nông (một lớp ẩn). Chính xác hơn, chúng cho
thấy các mạng tuyến tính thứ nhất (có thể thu được từ trực tiếp phi tuyến tính hoặc đơn vị
maxout) có thể biểu diễn các hàm với một số vùng có hàm mũ theo chiều sâu của mạng. Hình
6.5 minh họa các mạng có hiệu chỉnh giá trị tuyệt đối tạo ra các hình ảnh phản chiếu của hàm
được tính trên đầu một số đơn vị ẩn, đối với đầu vào của đơn vị ẩn đó. Mỗi đơn vị cụ thể nơi để
gấp không gian đầu vào để tạo ra phản ứng gương (trên cả hai bề mặt của phi tuyến tính giá trị
tuyệt đối). Bằng cách soạn các hoạt động gấp này, chúng ta thu được một số lượng lớn các vùng
tuyến tính có thể theo dõi theo cấp số nhân có thể nắm bắt tất cả các loại mẫu thông thường (ví
dụ: lặp lại).



Định lý chính trong Montufar et al. (2014) nói rằng số lượng các vùng tuyến tính được tạo ra
bởi một mạng trực tiếp sâu với các đơn vị chuẩn, độ sâu n trên mỗi lớp ẩn là
O(()d(l-1)nd)
có nghĩa là, theo cấp số nhân theo chiều sâu. Trong trường hợp các mạng tối đa có số lần thay
đổi trên mỗi đơn vị, số lượng các vùng tuyến tính là
O(k(l-1)+d)
Tất nhiên, không có gì đảm bảo rằng các loại hàm chúng ta muốn học trong các ứng dụng máy
học (và đặc biệt là AI) chia sẻ một thuộc tính như vậy.
Chúng ta cũng có thể muốn chọn một mô hình sâu cho các lý do thống kê. Bất cứ lúc nào chúng
ta chọn một thuật toán học máy cụ thể, chúng ta ngầm nói một số niềm tin trước đây mà chúng
ta có thể loại hàm mà thuật toán nên học. Chọn một mô hình sâu mã hóa một niềm tin rất
chung rằng hàm chúng ta muốn học nên liên quan đến thành phần của một số hàm đơn giản
hơn. Điều này có thể được giải thích từ quan điểm học tập đại diện khi nói răng chúng thôi tin
rằng vấn đề học tập bao gồm phát hiện một tập hợp các yêu tố cơ bản của biến thể có thể lần
lượt được mô tả theo các yêu tố cơ bản khác, đơn giản hơn. Ngoài ra, chúng ta có thể giải thích
việc sử dụng kiến trúc sâu như thể hiện niềm tin rằng chức năng mà chúng ta muốn tìm hiều là
1 chương trình máy tính gồm nhiều bước, trong đó mỗi bước sử dụng kết quả của bước đó. Các
đầu ra trung gian này không nhất thiết phải là các yếu tố của biến thể nhưng thay vào đó có thể
tương tự với các bộ phận đếm hoặc con trỏ mà mạng sử dụng để tổ chức xử lý nội bộ của nó.
Theo kinh nghiệm, chiều sâu lớn hơn dường như dẫn đến tổng quát hóa tốt hơn cho nhiều
nhiệm vụ khác nhau (Bengio et al., 2007; Erhan et al., 2009; Bengio, 2009; Mesnil et al., 2011;
Ciresan et al., 2012; Krizhevsky et al., 2012; Sermanet et al.,2013; Farabet et al., 2013; Couprie
et al., 2013; Kahou et al., 2013; Goodfellowet al., 2014d; Szegedy et al., 2014a). Xem biểu đồ 6.6
và biểu dồ 6.7 để biết các ví dụ về một số kết quả thực nghiệm này. Những kết quả này cho thấy
rằng việc sử dụng kiến trúc sâu thực sự thể hiện một lợi ích hữu ích trước không gian của các
chức năng mà mô hình học được.

2. Xem xét các kiến trúc khác
Cho đến nay chúng ta đã mô tả các mạng nơ-ron như là các chuỗi các lớp đơn giản, với những
cân nhắc chính là độ sâu của mạng và chiều rộng của mỗi lớp. Trong thực tế, các mạng nơ-ron

cho thấy sự đa dạng hơn đáng kể.


×