2.3.1. Quá trình học của Mạng thần kinh
Mạng thần kinh được huấn luyện bằng cách đưa các cặp tín hiệu đầu vào và tín hiệu đầu ra vào mạng. Các cặp số liệu này liên tục được đưa vào mạng và mạng nhanh chóng học mối quan hệ giữa đầu vào và đầu ra, quá trình này được gọi là quá trình mạng được huấn luyện. Sau đó, khi ta đưa tín hiệu vào mạng, mạng sẽ xử lý dựa trên mối quan hệ giữa biến vào và biến ra đã học để cho ra tín hiệu ra tương ứng. Quá trình huấn luyện thực chất là việc điều chỉnh các trọng số kết nối của mạng. Trong quá trình huấn luyện, các trọng số được điều chỉnh đến khi đạt được các giá trị sao cho với mỗi tín hiệu đầu vào thì mạng sẽ cho ra tín hiệu đầu ra gần với giá trị đầu ra mục tiêu nhất; nói cách khác, sai số giữa giá trị đầu ra của mạng và giá trị đầu ra mục tiêu là nhỏ nhất.
2.3.2. Các phƣơng pháp học
2.3.2.1. Học theo tham số
Phương pháp học tham số (Parameter Learning) nhằm tìm kiếm ma trận trọng số tối ưu để mạng cho ra các giá trị đầu ra sát với giá trị đầu ra mục tiêu. Tức là, tìm ma trận trọng số tối ưu để tối thiểu hóa sai số giữa giá trị đầu ra tính toán với giá trị đầu ra mục tiêu. Dạng tổng quát của phương pháp học tham số được mô tả như sau:
Trong đó:
Δwji: thể hiện sự thay đổi của trọng số kết nối từ nơ-ron i đến nơ-ron j Xi: tín hiệu vào được xem như là nơ-ron i
: tỷ lệ học (Learning rate), được giới hạn trong khoảng (0;1) r: tín hiệu học
n: số nơ-ron đầu vào m: số nơ-ron đầu ra
Tín hiệu học r được xác định để điều chỉnh trọng số của mạng. Phương pháp học tham số có thể chia thành 2 loại chính: học có giám sát (Supervised learning) và học không có giám sát (Unsupervised learning). Do đó, việc xác định r phụ thuộc vào từng loại học.
Học có giám sát
Mạng được huấn luyện trên một tập dữ liệu huấn luyện có dạng: { | [ ]} Trong đó:
X = (X1, X2, …, Xn) là véc-tơ n chiều đặc trưng cho các biến đầu vào của mẫu huấn luyện.
d = (d1, d2, …, dm) là véc-tơ m chiều tương ứng thể hiện cho các biến đầu ra mục tiêu của mạng (Desired Output).
Nhiệm vụ của mạng lúc này là phải thiết lập mối quan hệ giữa các biến đầu vào và các biến đầu ra trên tập huấn luyện sao cho với mỗi véc-tơ đầu vào X thì sai số giữa giá trị đầu ra tính toán của mạng Y và giá trị mục tiêu tương ứng d là nhỏ nhất. Trong trường hợp này, tín hiệu học r chính là sai số giữa Y và d, r = Y - d. Sai số hay tín hiệu học này sẽ được truyền ngược đến đầu vào để điều chỉnh trọng số của mạng. Quá trình này cứ thế tiếp diễn cho đến khi sai số được tối thiểu hóa và kết quả nhận được là ma trận trọng số tối ưu. Nói cách khác, điều chỉnh Δwji sao cho rmin, từ đó thu được ma trận trọng số tối ưu Wji.
Với r = Y - d, (1) trở thành:
̅̅̅̅̅ ̅̅̅̅̅̅
Từ công thức trên, chúng ta thấy rằng việc điều chỉnh trọng số phụ thuộc vào giá trị đầu ra mục tiêu d, nghĩa là giá trị đầu ra mục tiêu d đã được đưa vào mạng để giám sát quá trình huấn luyện của mạng, tức mạng học có giám sát.
Huấn luyện mạng có thể được thực hiện theo 2 cách. Một là, trọng số và sai số được điều chỉnh sau khi mỗi mẫu dữ liệu được đưa vào cho quá trình huấn luyện, gọi là
huấn luyện từng dòng (On-Line Training). Hai là, sau khi tất cả các dữ liệu trong tập huấn luyện được đưa vào mạng thì mạng sẽ thực hiện huấn luyện, điều chỉnh trọng số và sai số, gọi là huấn luyện hàng loạt (Batch Training). Về mặt lý thuyết, hai cách huấn luyện tương đương nhau, nhưng huấn luyện từng dòng đôi khi có ưu điểm hơn huấn luyện hàng hoạt trong một vài trường hợp phức tạp.
Học không có giám sát
Đối với cách học không giám sát, tập dữ liệu huấn luyện có dạng: D = (X1, X2, …, Xn), trong đó (X1, X2, … , Xn) là véc-tơ n chiều đặc trưng cho các biến đầu vào của mẫu huấn luyện. Véc-tơ đầu ra mục tiêu d sẽ không được đưa vào mạng. Không giống như học có giám sát, học không có giám sát không có một tập hợp ban đầu của các nhóm mẫu đã được phân loại về các nhân tố tác động đầu vào mà Mạng thần kinh phải tự triển khai các mẫu riêng cho nó. Nhiệm vụ của mạng là phải tự học, tự nhận ra cấu trúc, đặc trưng nổi bật của các đầu vào hay mạng được huấn luyện. Từ đó, mạng phân chia tập dữ liệu thành các nhóm, mỗi nhóm chứa các đầu vào có đặc trưng giống nhau. Khi mỗi nhóm dữ liệu được nhận ra, chúng có thể được đặt tên, lúc này mạng có thể thực hiện phân loại. Như vậy, đầu ra của mạng là nhóm dữ liệu được đặt tên và là các giá trị rời rạc. Các giá trị đầu ra được huấn luyện nhằm đáp ứng lại các nhóm mẫu của các biến đầu vào và dữ liệu đầu vào của mạng bị nén lại để cho ra đầu ra của mạng là một tập con của tập huấn luyện D. Do đó, dữ liệu đầu ra của toàn mạng trùng với dữ liệu đầu vào của mạng. Như vậy, mạng được huấn luyện không phụ thuộc vào các tín hiệu bên ngoài (đầu ra mục tiêu d), không nhận thông tin phản hồi từ môi trường, tức mạng đã thực hiện một quá trình huấn luyện với việc học không giám sát.
Hình thức đơn giản nhất của phương pháp học không giám sát được thể hiện trong quy tắc học Hebb. Khi nơ-ron i và nơ-ron j được kích hoạt đồng thời, liên kết giữa chúng được tăng cường. Nếu nơ-ron j nhận tín hiệu đầu vào nơ-ron i, thì trọng số kết nối giữa chúng sẽ được điều chỉnh: , trong trường hợp này r = xi.
2.3.2.2. Học cấu trúc
Cấu trúc Mạng thần kinh nhân tạo được đặc trưng bởi các thành phần như số lớp nơ- ron, số nơ-ron trong mỗi lớp và cách mà các lớp liên kết với nhau. Việc học cấu trúc (Structure Learning) của mạng chính là tìm ra số lượng lớp ẩn, số lượng nơ-ron ẩn trong mỗi lớp để tìm được một cấu trúc mạng hoạt động tốt nhất.
2.3.3. Hàm truyền
Hàm truyền hay còn gọi là hàm kích hoạt là một thành phần không thể thiếu trong mô hình Mạng thần kinh. Hàm truyền giúp cho thông tin được truyền từ nơ-ron này đến
các nơ-ron khác, và kết quả của hàm truyền là thông tin đầu ra của mỗi lớp ẩn và lớp đầu ra. Sau đây là một số hàm truyền thường được sử dụng.
Hàm Heaviside
Hàm Heaviside hay hàm Unit Step, hàm này được sử dụng bởi McCulloch và Pitts (1943). Trong mô hình mạng thần kinh đơn giản với 2 lớp đầu vào – đầu ra, tín hiệu chỉ truyền từ đầu vào tới đầu ra khi cường độ tín hiệu đầu vào vượt qua một ngưỡng cụ thể nào đó. Lúc này đầu ra của mạng được giới hạn một trong hai giá trị:
{ }
Hình 2.10: Đồ thị biểu diễn hàm truyền Heaviside Hàm Xích ma
Hàm truyền được cải tiến để thay thế hàm Heaviside là hàm Xích ma (hàm Sigmoid) được giới thiệu bởi Cowan (1967). Hàm này có khả năng mô phỏng bất kỳ một hàm phi tuyến nào với độ chính xác chắc chắn. Khi đó:
Hình 2.11: Đồ thị biểu diễn hàm truyền Xích ma
Hàm Xích ma có giá trị trong đoạn [0;1] nên thường được dùng trong các ứng dụng mà giá trị đầu ra nằm trong đoạn [0;1]. Khi hàm Xích ma tiệm cận 0 thì hàm hầu như
không còn nhạy đối với các xung điện nhận được từ lớp đầu vào, hay đầu ra không được kích hoạt.
Hàm Hyperbol
Hàm Hyperbol (hay còn gọi là TanhAxon) có cấu trúc giống hàm xích ma nhưng giá trị của hàm nằm trong đoạn [-1;1]. Vì vậy, hàm này được dùng với các ứng dụng mà biến đầu ra có chứa các giá trị âm.
Hình 2.12: Đồ thị biểu diễn hàm Hyperbol
Hầu hết các mô hình thần kinh nhân tạo đều sử dụng hàm kích hoạt là các hàm phi tuyến tại một số lớp trong mô hình. Các hàm phi tuyến thường được dùng là hàm xích ma và hàm Hyperbol. Khi mạng chứa các lớp ẩn thì hàm xích ma được ưa thích hơn hàm Heaviside. Bởi lẽ, với hàm xích ma chỉ cần trọng số có một sự thay đổi nhỏ sẽ làm thay đổi giá trị đầu ra, còn với hàm Heaviside khi trọng số thay đổi sẽ không làm thay đổi giá trị đầu ra. Ngoài ra, sai số của quá trình huấn luyện sẽ là một hằng số nếu dùng hàm Heaviside; do đó, độ dốc sẽ không tồn tại hoặc bằng 0 khiến cho quá trình huấn luyện không thể thực hiện với thuật toán truyền ngược.
Một số hàm truyền khác trong phần mềm NeuroSolutions 6.01
Ngoài các hàm truyền phổ biến ở trên, còn có một số hàm hiện nay được sử dụng khá rộng rãi trong các mạng thần kinh nhân tạo, cụ thể như:
Hàm LinearTanhAxon
{
Hình 2.13: Đồ thị biểu diễn hàm LinearTanhAxon Hàm LinearSigmoidAxon
{
Hình 2.14: Đồ thị biểu diễn hàm LinearSigmoidAxon Hàm SoftMaxAxon
∑ Với k là số nơ-ron lớp đầu ra
Các giá trị đầu ra của các nơ-ron lớp đầu ra nằm giữa 0 và 1 và tổng của các giá trị đầu ra này bằng 1.
Hàm LinearAxon
∑ ∑ Trong đó:
Xi là giá trị đầu vào n là số nơ-ron lớp đầu vào
m là số nơ-ron lớp tiếp sau lớp đầu vào
wji là trọng số kết nối giữa nơ-ron lớp đầu vào và nơ-ron lớp tiếp theo
Hàm BiasAxon
( )
Hàm Axon
( )
Kuan và White (1994) đã chứng minh rằng việc dùng các hàm truyền tuyến tính trong lớp đầu ra và các hàm truyền phi tuyến trong lớp ẩn có thể cho ra một phép tính gần chính xác của bất kỳ hàm nào với mức độ chắc chắn, với điều kiện các nơ-ron ẩn đủ lớn.
2.3.4. Thuật toán truyền ngƣợc
Thuật toán truyền ngược (BackPropagation) là một thuật toán điều chỉnh trọng số được sử dụng rất phổ biến. Thuật ngữ truyền ngược đề cập đến chiều truyền của sai số. Mục tiêu quan trọng nhất là thực hiện điều chỉnh những trọng số và độ lệch của mạng nhằm tối thiểu hóa sai số trong hàm đầu ra hay còn gọi là hàm chi phí (Cost Function). Việc học truyền ngược được mô hình tiến hành thực hiện trong một vài bước lặp nhỏ. Chúng ta phải cung cấp tập dữ liệu học hỏi và giá trị đầu ra thực hay còn gọi là giá trị đầu ra mục tiêu để tạo nên tập các giá trị đầu vào – đầu ra. Đầu tiên, một trong các giá trị đầu vào – đầu ra được đưa vào mạng. Sau đó, Mạng thần kinh tạo ra các giá trị đầu ra dựa vào các trọng số (ban đầu các giá trị trọng số này là ngẫu nhiên nằm trong khoảng (-1;1)). Giá trị đầu ra này được so sánh với giá trị đầu ra cho trước và sai số bình phương trung bình (MSE) được tính toán dựa trên sự so sánh này. Giá trị sai số được truyền ngược trở lại qua Mạng thần kinh, và những trọng số tiếp tục được tính toán và điều chỉnh trong mỗi lớp nhằm làm giảm sai số. Quá trinh được lặp lại cho mỗi giá trị đầu vào - đầu ra. Cả chu trình được lặp lại cho đến khi sai số cục bộ giảm xuống dưới ngưỡng cho trước mà ta chấp nhận được. Tại điểm này chúng ta nói rằng Mạng thần kinh đã học tốt; tuy nhiên, Mạng thần kinh chưa bao giờ học chính xác một hàm lý tưởng nhưng nó sẽ tiệm cận với hàm lý tưởng.
Có thể tóm tắt quá trình huấn luyện truyền ngược này thành những bước sau: 1. Các giá trị đầu vào được đưa vào Mạng thần kinh.
2. Thuật toán bắt đầu bằng việc gán giá trị cho các trọng số một cách ngẫu nhiên. Mạng thần kinh sẽ tính toán sai số giữa giá trị đầu ra mục tiêu và giá trị đầu ra của mô hình. Sai số được truyền ngược trở lại từ lớp đầu ra đến các lớp ẩn.
3. Những trọng số của Mạng thần kinh tiếp tục được điều chỉnh sao cho làm giảm sai số.
Hình 2.15: Mô hình Mạng thần kinh nhân tạo có sử dụng thuật toán truyền ngƣợc
Trong mô hình thần kinh nhân tạo, một quá trình gồm có 3 bước như trên đi từ đầu vào đến đầu ra được gọi là một vòng lặp. Công việc huấn luyện có thể diễn ra với cả nghìn vòng lặp, và nó ngừng lại hoặc là khi đạt được số lượng vòng lặp bằng với số vòng lặp được chọn trước, hoặc là khi sai số của Mạng thần kinh (Sai số bình phương trung bình - MSE) được tối thiểu hóa nằm dưới một ngưỡng cho trước, hoặc là khi mạng xuất hiện tình trạng học quá mức và được ngừng lại với thủ tục ngừng đúng lúc. Mạng thần kinh sử dụng sai số hoặc hàm mục tiêu (hay còn gọi là hàm chi phí) để đo lường sự khác nhau giữa giá trị mục tiêu và giá trị đầu ra. Những trọng số được điều chỉnh sao cho sai số hoặc hàm mục tiêu càng nhỏ càng tốt. Hàm mục tiêu có thể được viết như sau:
Với: Tt là giá trị đầu ra thực hay giá trị đầu ra mục tiêu ở vòng lặp thứ t Yt là giá trị đầu ra được tính toán ở vòng lặp thứ t
Hàm mục tiêu trong lý thuyết tối ưu hóa có 2 dạng phổ biến nhất là sai số tuyệt đối trung bình (MAE) và sai số bình phương trung bình (MSE)
∑| |
∑
Chỉ tiêu Sai số bình phương trung bình (MSE) thường được dùng nhiều hơn chỉ tiêu Sai số tuyệt đối trung bình (MAE). Mạng thần kinh được huấn luyện sử dụng với chỉ tiêu là hàm MSE. Nhưng trong Mạng thần kinh, hàm mục tiêu (hàm chi phí) có phần khác so với công thức (8):
∑
Với công thức (9), phân số ⁄ được lựa chọn để tạo sự thuận lợi trong việc tính đạo hàm của hàm chi phí khi ước lượng tham số. Trong đạo hàm, ⁄ sẽ bị loại bỏ, trong khi đó nếu sử dụng phân số ⁄ thì khi tính đạo hàm chúng ta lại được ⁄ , điều này gây khó khăn khi ước lượng tham số của Mạng thần kinh.
Mặc dù khi thực hiện thuật toán truyền ngược thì hàm tính chi phí E có phần khác so với hàm tính MSE, nhưng tối thiểu hóa hàm E cũng là tối thiểu hóa hàm MSE. Do đó, hàm MSE được dùng trong thuật toán để đơn giản hóa trong việc xác định hiệu quả của mô hình.
2.3.4.1. Điều chỉnh trọng số của Mạng thần kinh
Nếu E là giá trị của hàm sai số thì độ dốc của E theo trọng số là
Với là véc-tơ của tất cả các trọng số của Mạng thần kinh tại vòng lặp thứ t. Khi áp dụng thuật toán truyền ngược thì kiến thức sẽ được cộng dồn qua quá trình học hỏi. Do đó, trọng số của Mạng thần kinh được điều chỉnh như sau:
Trong đó
t + 1 là các trọng số tại vòng lặp (t + 1) Δ( )t là quá trình học hỏi
Quá trình học của Mạng thần kinh giống như là quá trình học trong hệ thần kinh sinh học. Kinh nghiệm học hỏi của Mạng thần kinh đòi hỏi phải điều chỉnh Δ( )t để giảm sai số tại mỗi vòng lặp. Việc điều chỉnh trọng số của Mạng thần kinh được thực hiện theo nguyên tắc giảm độ dốc (Gradient descent).
2.3.4.2. Nguyên tắc giảm độ dốc
Nguyên tắc giảm độ dốc khá đơn giản. Các trọng số được di chuyển theo hướng ngược với đường cong, do đó nó sẽ đến điểm mà có bề mặt phẳng hơn.
Hình 2.16: Biểu diễn việc điều chỉnh các trọng số theo nguyên tắc giảm độ dốc
Ở hình trên, chúng ta thấy rằng các trọng số được liên tục thay đổi độ dốc để sau mỗi vòng lặp thì các trọng số cũ hướng tới vị trí các trọng số mới có giá trị tối ưu hơn; từ