Chương 1 Kiến thức chuẩn bị Chương này nhằm mục đích hệ thống hoá lại khái niệm và thuật ngữ chính có liên quan làm cơ sở cho việc triển khai các nội dung về sau. Chúng được chọn lọc ra từ một số lượng tương đối các tài liệu tham khảo thuộc lĩnh vực có liên quan đến đề tài, và rất nhiều trong số đó là tài liệu ngoại văn. Để đảm bảo tính thống nhất, chúng tôi đã cố gắng thực hiện việc chuyển ngữ khi có phương án phù hợp, tuy nhiên, vẫn còn nhiều tình huống chưa thể khắc phục được tối ưu tác giả vẫn dùng lại thuật ngữ gốc tiếng Anh trong nguyên bản. Mạng neuron Mạng neuron (nhân tạo) bao gồm một tập hợp các đơn vị xử lý (processing units) được kết nối với nhau.
Cho các giá trị đầu vào w0 , x1 ,. , xD , với w0 là đại diện cho các giá trị nhập vào từ bên ngoài và x1 ,. , xD là đầu vào có nguồn gốc từ các đơn vị xử lý khác trong mạng neuron, đơn vị xử lý tính toán đầu ra của nó là y = f (z). f được gọi là hàm kích hoạt và z thu được bằng cách áp dụng quy tắc lan truyền (propagation rule), ở đó các input được ánh xạ tới đầu vào thực tế z.
Mô hình của một đơn vị xử lý này bao gồm định nghĩa về neuron trong [7], thay vì quy tắc lan truyền, một bộ cộng (adder) được sử dụng để tính z là tổng trọng số của tất cả các input. Mạng neuron có thể được hình dung dưới dạng đồ thị có hướng gọi là biểu đồ mạng (network graph) [8]. Mỗi đơn vị được biểu diễn bằng một nút được gắn nhãn theo đầu ra của nó và các đơn vị được kết nối với nhau bằng các cạnh có hướng. Đối với một đơn vị xử lý, điều này được minh họa trong Hình 1.1, trong đó đầu vào bên ngoài w0 chỉ được thêm vào nhằm mục đích minh họa và thường bị bỏ qua.
Để thuận tiện, chúng tôi phân biệt đơn vị đầu vào và đơn vị đầu ra. Đơn vị đầu vào tính toán đầu ra y := x trong đó x là giá trị đầu vào duy nhất của đơn vị. Các đơn vị đầu ra có thể 4 Hình 1.1: Một đơn vị xử lý bao gồm một quy tắc 1 truyền ánh xạ từ tất cả các đầu vào w0 , x1. , xD tới w0 đầu vào thực tế z và hàm kích hoạt f được áp dụng x1 trên đầu vào thực tế để tạo thành đầu ra y = f (z).
y Mỗi đơn vị đều được gắn nhãn theo đầu ra của nó. Do đó, để bao gồm cả độ lệch w0 , một đơn vị giả có xD giá trị 1 được đưa vào. chấp nhận một số lượng giá trị đầu vào tùy ý. Nhìn chung, mạng đại diện cho một hàm y(x) có kích thước được cố định bởi số lượng đơn vị đầu vào và đơn vị đầu ra, điều này có nghĩa là đầu vào của mạng được các đơn vị đầu vào chấp nhận và các đơn vị đầu ra tạo thành đầu ra của mạng.
Perceptron đa tầng Thuật toán Perceptron (L + 1) tầng, được minh họa trong Hình 1.2, bao gồm các đơn vị đầu vào D, đơn vị đầu ra C và một số đơn vị được gọi là đơn vị ẩn. Các đơn vị được sắp xếp thành các tầng, đó là một perceptron nhiều tầng bao gồm một tầng đầu vào, một tầng đầu ra và L các tầng ẩn 1. Đơn vị thứ i trong tầng l tính toán đầu ra m(l−1) (l) (l) (l) (l) (l−1) (l) yi = f zi với zi = ∑ wi,k yk + wi,0 (1.1) k=1 (l) trong đó, wi,k biểu thị kết nối có trọng số từ đơn vị thứ k trong tầng (l − 1) đến đơn vị thứ i (l) trong tầng l và wi,0 có thể được coi là đầu vào bên ngoài của đơn vị và được gọi là độ lệch.2) k=0 trong đó z(l) , w(l) và y(l−1) biểu thị các biểu diễn vectơ và ma trận tương ứng của các đầu (l) (l) (l−1) vào thực tế zi , các trọng số wi,k và kết quả đầu ra tương ứng là yk. Theo ngôn ngữ toán học, một perceptron đa tầng nói chung đại diện cho một hàm y(·, w) : RD → RC , x 7→ y(x, w) (1.3) (L+1) với vectơ đầu ra y(x, w) bao gồm các giá trị đầu ra yi (x, w) := yi và w là vectơ của tất cả các trọng số trong mạng.
1 Trên thực tế, một perceptron (L + 1) tầng có (L + 2) tầng bao gồm cả tầng đầu vào. Tuy nhiên, như đã nêu trong [9], tầng đầu vào không được tính vì không có quá trình xử lý thực sự nào diễn ra. 5 1st hidden layer Lth hidden layer input layer output layer (1) .2: Biểu đồ mạng của perceptron (L + 1) tầng với đơn vị đầu vào D và đơn vị đầu ra C. Tầng ẩn thứ l chứa các đơn vị ẩn m(l).
Người ta thường nói là mạng lưới thần kinh sâu nếu nó có nhiều hơn ba tầng ẩn [10]. Việc đào tạo mạng lưới thần kinh sâu, hay còn gọi là học sâu, được coi là thách thức đặc biệt [10]. Hàm kích hoạt Trong [7], ba loại hàm kích hoạt được thảo luận: hàm ngưỡng (threshold functions), hàm tuyến tính từng đoạn (piecewise-linear functions) và hàm sigmoid. Hàm ngưỡng phổ biến được đưa ra bởi hàm bước Heaviside 1 if z ≥ 0, h(z) = (1.
Tuy nhiên, cả hai hàm ngưỡng cũng như hàm tuyến tính từng đoạn đều có một số hạn chế. Đầu tiên, để huấn luyện mạng, chúng ta có thể cần hàm kích hoạt có tính khả vi. Thứ hai, các hàm kích hoạt phi tuyến được ưa chuộng hơn do khả năng tính toán bổ sung mà chúng tạo ra [11]. Loại hàm kích hoạt được sử dụng phổ biến nhất là hàm sigmoid.
Ví dụ, hàm sigmoid logistic được cho bởi 1 σ(z) = .5) 1 + exp(−z) Đồ thị của nó có hình chữ S, khả vi, đơn điệu. Một ứng viên khác là hàm tanh(z), có thể được coi là phép biến đổi tuyến tính của hàm sigmoid logistic trên khoảng [−1, 1]. 6 Logistic sigmoid 1 Hyperbolic tangent 1 tanh(z) σ(z) 0 0.5 −1 0 −4 −2 0 2 4 −4 −2 0 2 4 z z (a) Hàm kích hoạt Logistic sigmoid. (b) Hàm kích hoạt tanget Hyperbolic.
1 Softsign 1 Rectified tanh tanh(z) s(z) 0.5 0 0 −4 −2 0 2 4 −4 −2 0 2 4 z z (c) Hàm kích hoạt Logistic sigmoid. (d) Hàm kích hoạt tanget hyperbol chỉnh lưu.3: Một số hàm kích hoạt. Khi sử dụng mạng neuron để phân loại 2 , hàm kích hoạt softmax cho các đơn vị đầu ra được sử dụng để diễn giải các giá trị đầu ra dưới dạng xác suất3. Theo đó, đầu ra của đơn vị thứ i trong lớp đầu ra được cho bởi (L+1) exp(zi ) σ(z(L+1) , i) = (L+1) .6) ∑Ck=1 exp(zk ) Các thử nghiệm trong [12] cho thấy rằng hàm sigmoid logistic cũng như tanh (·) hoạt động khá kém trong học sâu.
Hiệu suất tốt hơn được thể hiện qua hàm kích hoạt softsign 1 s(z) = .8) Đơn vị ẩn sử dụng hàm kích hoạt trong phương trình (1.8) được gọi là đơn vị tuyến tính chỉnh lưu (ReLU). Một số hàm kích hoạt trên được minh họa trong Hình 1. Đào tạo có giám sát Đào tạo có giám sát là vấn đề xác định trọng số mạng để xấp xỉ ánh xạ mục tiêu cụ thể g. Trong thực tế, g có thể chưa biết nên ánh xạ được đưa ra bởi một tập dữ liệu đào tạo.
Bộ 2 Nhiệm vụ phân loại có thể được phát biểu như sau: Cho một vectơ đầu vào x có kích thước D, mục tiêu là gán x cho một trong các lớp rời rạc C [9]. 3 Các đầu ra y(L+1) , 1 ≤ i ≤ C, có thể được hiểu là xác suất khi chúng nằm trong [0, 1] và có tổng bằng 1. i 7 đào tạo TS := {(xn ,tn ) : 1 ≤ n ≤ N}, (1.9) bao gồm cả giá trị đầu vào xn và giá trị đầu ra mong muốn tương ứng, có thể có nhiễu tn ≈ g(xn ) [7]. Các thước đo sai số Quá trình đào tạo được thực hiện bằng cách điều chỉnh các trọng số w của mạng neuron để giảm thiểu hàm mục tiêu đã chọn, hàm này có thể được hiểu là thước đo sai số giữa đầu ra mạng y(xn ) và đầu ra mục tiêu mong muốn tn.
Các lựa chọn phổ biến để phân loại bao gồm thước đo tổng bình phương sai số được đưa ra bởi N N C E(w) = ∑ En (w) = ∑ ∑ (yk (xn , w) − tn,k )2 , (1.10) n=1 n=1 k=1 và thước đo cross-entropy sai số được đưa ra bởi N N C E(w) = ∑ En (w) = ∑ ∑ tn,k log(yk (xn , w)), (1.11) n=1 n=1 k=1 trong đó tn,k là mục thứ k của giá trị đích tn. Chi tiết về việc lựa chọn thước đo sai số và các thuộc tính của chúng có thể tìm thấy trong [8]. Tiếp theo, chúng tôi giới thiệu một số khái niệm thường dùng trong học sâu. Stochastic training Giá trị đầu vào được chọn ngẫu nhiên và trọng số mạng được cập nhật dựa trên sai số En (w).
Batch training Tất cả các giá trị đầu vào đều được xử lý và trọng số được cập nhật dựa trên sai số tổng thể E(w) = ∑Nn=1 En (w). Online training Mỗi giá trị đầu vào chỉ được xử lý một lần và các trọng số được cập nhật bằng sai số En (w). Mini-batch training Một tập hợp con ngẫu nhiên M ⊆ {1,. Parameter Optimization Xét quá trình ngẫu nhiên, chúng tôi tìm cách giảm En với trọng số w.
Tiêu chí cần thiết là ∂En ! = ∇En (w) = 0 (1.4: Ý tưởng về gradient w[0] descent là tuân theo độ dốc âm w[1] ở vị trí hiện tại vì nó mô tả w[2] hướng đi xuống dốc nhất. Tốc w[3] độ học γ mô tả kích thước bước w[4] được thực hiện trong mỗi bước lặp. Do đó, gradient descent mô tả một kỹ thuật tối ưu hóa bậc nhất. trong đó ∇En là đạo hàm của sai số En.
Do sự phức tạp của sai số En nên cần sử dụng phương pháp lặp để giải nghiệm. Đặt w[t] biểu thị vectơ trọng số trong lần lặp thứ t. Trong mỗi lần lặp, chúng tôi tính toán và cập nhật trọng số ∆w[t] và trọng số tương ứng w[t + 1] = w[t] + ∆w[t].13) Từ tối ưu hóa không ràng buộc, chúng tôi có sẵn một số kỹ thuật tối ưu hóa.