6. Bố cục luận văn
2.1.5. Vai trò của PCA trong xử lí tín hiệu nhiều chiều
Dữ liệu có số chiều lớn, do đó cần phải tìm cách đưa dữ liệu về không gian có số chiều nhỏ hơn. PCA là một trong những phương pháp như thế, nhưng hơn thế, PCA có nhiều đặc tính tốt:
- Giúp giảm số chiều dữ liệu
- Thay vì giữ lại các trục tọa độ của không gian cũ, PCA xây dựng một không gian mới ít chiều hơn nhưng lại có khả năng biểu diễn dữ liệu tốt tương đương không gian cũ.
- Các trục tọa độ trong không gian mới là tổ hợp tuyến tính của không gian cũ. Input: hình ảnh chứa cảm xúc huyể hì h ả h th h vecto khuô mặt huẩ hóa vecto khuô mặt
ưa vecto khuô mặt v o khô ia vecto riê Ω 𝒘𝟏 𝒘𝟐 𝒘𝒌 Vecto trọ số của ả h đầu v o í h khoả cách iữa vecto
trọ số đầu v o với tất cả các vecto trọ số tro tập huấ luyệ Khoả cách> ưỡ ? Không nhận ra cảm xúc vui Y N
- Trong không gian mới, các liên kết tiềm ẩn của dữ liệu có thể được khám phá, mà nếu đặt trong không gian cũ thì khó phát hiên hơn (như hình minh họa 2.1)
2.3. hươ pháp hậ diệ sử dụ Artipicial Neural Network (ANN)
2.3.1. Cấu trúc của ANN
Mạng nơron nhân tạo được xây dựng trên cơ sở kế thừa cấu trúc và sự hoạt động của mạng nơron sinh học. Sau đây chúng ta sẽ xem xét một cách tổng quan về cấu trúc và sự hoạt động của mạng nơron sinh học, từ đó có những hình dung về cấu trúc và sự hoạt động của mạng nơron nhân tạo.
Như đã biết bộ não người chứa đựng khoảng 1011
nơron liên kết với nhau ở mức cao, mỗi nơron có khoảng 104 liên kết tới các nơron khác. Mỗi nơron có ba thành phần chính gồm: dendrites (vòi thu nhận tín hiệu), cell body (nhân nơron), axon (trục chuyển tín hiệu). Vòi nhận tín hiệu có hình cây để nhận các tín hiệu đưa vào trong nhân của nơron. Nhân có nhiệm vụ tổng hợp các tín hiệu được thu nhận từ các vòi và kích hoạt nó, nếu vượt một ngưỡng nào đó thì tín hiệu sẽ được chuyển tới axon và truyền đến các nơron khác. Khớp nối giữa axon của một nơron với vòi của nơron khác gọi là synapse.[3]
Hình 2.6. Sơ đồ mạng nơron sinh học
Khi mới sinh ra bộ não người có cấu trúc đơn giản, và ngày càng được hoàn thiện bởi việc học của con người. Đó là việc thiết lập các liên kết giữa các nơron với nhau để biểu diễn tri thức của con người có được, từ đó xử lý các thông tin khác.
Mạng nơron nhân tạo không tiếp cận theo cách liên kết phức tạp của não người. Tuy nhiên chúng có 2 điểm chính tương tự nhau, đó là: xây dựng các khối đều là những phần tính toán đơn giản được kết nối với nhau ở mức cao; liên kết giữa các
nơron để xác định chức năng của mạng.
Mạng nơ-ron nhân tạo hay thường gọi ngắn gọn là mạng nơ-ron là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng nơ-ron sinh học. Nó gồm có một nhóm các nơ-ron nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút. Trong nhiều trường hợp, mạng nơ-ron nhân tạo là một hệ thống thích ứng tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chảy qua mạng trong quá trình học. [6]
Neural Network là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các Neuron được gắn kết để xử lý thông tin. Neural Network giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết. [2]
Cấu trúc cơ bản của 1 Neural Network gồm: một lớp vào (input layer), một lớp ra (output layer) và một hay nhiều lớp ẩn (hidden layer). Mỗi lớp chứa nhiều Neural. Các Neural giữa các lớp liên kết với nhau. Hình minh họa cho một mạng Neural:
Với mỗi Neural có cấu trúc như sau: Giá trị đầu vào Trọng số weight
1 1
Hàm truyền Giá trị đầu ra 2
2
…
Giá trị bias
Hình 2.8. Sơ đồ khối tổng quát của 1 Nơ-ron trong Neural Network
Chi tiết về các thành phần của một Nơ-ron như sau:
Inputs : Mỗi Input tương ứng với 1 thuộc tính (attribute) của dữ liệu (patterns).
Connection Weights (Trọng số liên kết) Wij: Trọng số kết nối giữa đầu vào thứ
j với Nơ-ron i. Đây là thành phần rất quan trọng của một mạng Nơ-ron, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối với quá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ lớp này sang lớp khác). Quá trình học (Learning Processing) của mạng Nơ-ron thực ra là quá trình điều chỉnh các trọng số (Weight) của các input data để có được kết quả mong muốn. [1]
Giá trị Bias( ): Hay còn được gọi là độ lệch, được đưa vào để thể hiện sự thiên vị cho một thông số nào đầu vào nào đó trong mạng.
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input được
đưa vào mỗi Nơ-ron. Hàm tổng của một Nơ-ron đối với n input được tính theo công thức sau:
∑ 1 +
Hàm tổng (summation function) của một Neural cho biết khả năng kích hoạt (activation) của neuron đó còn gọi là kích hoạt bên trong (internal activation). Các Neural này có thể sinh ra một output hoặc không trong mạng Neural (nói cách khác rằng output của 1 Neural có thể được chuyển đến lớp tiếp theo trong mạng Neural hoặc không). Mối quan hệ giữa internal activation và kết quả (output) được thể hiện bằng hàm chuyển đổi (transfer function). [1]
f( ) là hàm truyền hay còn gọi là hàm kích hoạt, trong đề tài này em sử dụng
hàm truyền sigmoid ở lớp ẩn và hàm softmax ở lớp ra
oHàm sigmoid: ( ) 1 1
Kết quả của sigmoid function thuộc khoảng [0,1] nên còn gọi là hàm chuẩn hóa (normalized function).
oHàm softmax: ( ) ∑
Kết quả của hàm softmax là dãy kết quả có tổng bằng 1. là đầu ra của Nơ-ron thứ i
Kết quả xử lý tại các Nơ-ron (output) đôi khi rất lớn, vì vậy transfer function được sử dụng để xử lý output này trước khi chuyển đến lớp tiếp theo. Đôi khi thay vì sử dụng transfer function người ta sử dụng giá trị ngưỡng (threshold value) để kiểm soát các output của các Nơ-ron tại một lớp nào đó trước khi chuyển các output này đến các lớp tiếp theo. Nếu output của một Nơ-ron nào đó nhỏ hơn threshold thì nó sẻ không được chuyển đến lớp tiếp theo. [1]
2.3.2. Phân loại mạng Nơron
Có nhiều cách phân chia các loại hình mạng nơron, nhưng trong quá trình xây dựng mạng, người ta thấy rằng các phương pháp cho mạng học sẽ quyết định tới khả năng của mạng sau này. Vì vậy cách phân chia phổ biến nhất hiện nay dựa vào phương pháp cho mạng học các tri thức mới. Có hai hướng chính là học có giám sát (supervised learning) và tự học hay học không giám sát (unsupervised learning). Trong khuôn khổ khoá luận này, ta chủ yếu xem xét phương pháp học có giám sát cùng với một đại diện tiêu biểu của phương pháp này là thuật toán lan truyền ngược sai số.
Phương pháp học có giám sát là thực hiện một công việc nào đó dưới sự giám sát của một thầy giáo. Với cách tiếp cận này, thuật toán huấn luyện mạng thường được cung cấp một tập mẫu học dưới dạng: D={(x,t)|(x,t) [IRN x RK]}, trong đó: x=(x1,x2,…,xN) là vectơ đặc trưng N chiều của mẫu huấn luyện và t=(t1,t2,…,tK) là vectơr mục tiêu K chiều tương ứng. Nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán trên mạng như thế nào đó để sao cho với mỗi vectơ đặc trưng đầu vào thì sai số giữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất. [12]
Với bài toán nhận dạng, ta có thể nói: Phương pháp học có giám sát là phương pháp học để phân lớp trên tập mẫu huấn luyện đầu vào, trong đó số lớp cần phân là biết trước và thuật toán học mạng có nhiệm vụ phải xác định được các luật phân lớp sao cho mỗi đầu vào huấn luyện sẽ được phân vào đúng lớp của nó. Một số thuật toán điển hình trong phương pháp học có thầy là: thuật toán LMS (Least Mean Square
error), thuật toán lan truyền ngược (back propagation),…
Trong các loại hình mạng nơron học theo phương pháp có giám sát, nổi tiếng nhất là mạng nơron nhiều tầng truyền thẳng học theo phương pháp lan truyền ngược (backpropagation). Phần sau sẽ trình bày cấu trúc của loại mạng này cùng với thuật toán học mạng của nó. [12]
2.3.3. Thuật toán lan truyền ngược
Trong phần này luận văn sẽ trình bày một cách tiếp cận học rất hiệu quả, đó là suy rộng của thuật toán LMS. Sự mở rộng này chính là thuật toán lan truyền ngược, thường được dùng để huấn luyện mạng nhiều lớp. Theo luật học LMS, lan truyền ngược là một thuật toán xấp xỉ xuống dốc từng bước, trong đó đặc trưng thực hiện là sai số bình phương trung bình (MSE). Sự khác nhau giữa thuật toán LMS và lan truyền ngược chỉ là cách tính đạo hàm. Với mạng tuyến tính một lớp, sai số là một hàm hiện tuyến tính của các trọng số mạng, đạo hàm của nó với các trọng số được tính dễ dàng. Trong mạng nhiều lớp với hàm kích hoạt phi tuyến, quan hệ giữa các trọng số mạng và sai số là rất phức tạp. Để tính các đạo hàm, ta cần sử dụng các luật chuỗi của các phép tính. Thực tế đây là một phần rất lớn được trình bày trong phần này.
Luật học perceptron của Frank Rosenblatt và thuật toán LMS của Bernard Widrow và Marcian Hoff được thiết kế để huấn luyện các mạng một lớp kiểu perceptron. Như đã trình bày ở phần trước, các mạng một lớp này chịu một bất lợi đó là chúng chỉ có khả năng giải quyết các vấn đề phân lớp tuyến tính. Cả Rosenbatt và Widrow đã nhận thấy những hạn chế này và đề xuất mạng nhiều lớp có thể khắc phục chúng, nhưng họ không đề xuất được thuật toán để huấn luyện các mạng quá mạnh này.
Nhìn bên ngoài thoạt đầu mô tả về một thuật toán huấn luyện mạng nhiều lớp chứa đựng luận điểm của Paul Werbos năm 1974. Luận điểm này biểu diễn thuật toán trong ngữ cảnh của mạng tổng quát, với các mạng nơron như một trường hợp đặc biệt, và không được phổ biến trong mạng nơron. Đến giữa những năm 1980 thuật toán lan truyền ngược được khám phá và công bố rộng rãi. Nó được David Parker, Geoffrey Hinton và Ronald Williams khai phá lại một cách độc lập. Thuật toán này nổi tiếng bởi kết luận của nhà tâm lý học David Rumelhart và James Mc Clelland trong quyển sách Parallel Distributed Processing [13]. Mạng perceptron nhiều lớp và thuật toán lan truyền ngược hiện nay được dùng rất rộng rãi trong mạng nơron.
2.3.4. Huấn luyện Neural Network
Huấn luyện Neural Network là việc điều chỉnh các thông số: trọng sô liên kết W và giá trị bias b sao cho khi đưa các giá trị input Xi đầu vào thì thu được đầu ra như mong muốn với hiệu năng cao nhất có thể. Thuật toán này là một dạng tổng quát của
thuật toán trung bình bình phương tối thiểu (least means square – LMS: Thuật toán này xấp xỉ để tìm các điểm mà tại đó hiệu năng của mạng là tối ưu, chỉ số tối ưu thường được xác định bởi một hàm số của ma trận trọng số W, b và các đầu vào X). Việc huấn luyện này có rất nhiều phương pháp khác nhau. Phương pháp phổ biến nhất hiện nay là thuật toán lan truyền ngược (Backpropagation).
Các bước lan truyền ngược được thể hiện như sau:
Hình 2.9. Quá trình lan truyền ngược
Lan truyền thuận : dữ liệu được truyền từ lớp nơron đầu vào đến lớp đầu ra và cho kết quả của lớp nơron đầu ra :
(∑
1
+ )
Với f là hàm kích hoạt (sigmoid)
Lan truyền lỗi ngược lại qua mạng: Thuật toán được sử dụng là trung bình bình phương lỗi (là một trong các hàm mục tiêu) của đầu ra so với kết quả thật sự
. Đầu vào của thuật toán chính là tập các cặp mô tả hoạt động đúng của mạng:
{( 1 1) ( 2 2) ( ) }
Trong đó là một đầu vào và là một đầu ra mong muốn tương ứng, N là số mẫu huấn luyện.
Với mỗi đầu ra được tính toán của mạng, được đem so sánh với đầu ra mong muốn, thuật toán sẽ điều chỉnh các thông số của mạng để tối thiểu hóa trung bình bình phương lỗi:
( ) ∑( )2
Cập nhật các trọng số và độ lệch : Ở mỗi lần lan truyền ngược các trọng số W,b được cập nhật theo công thức bên dưới :
( )
( )
Trong đó là trọng số liên kết giữa Neural thứ i với thuộc tính thứ j, là độ lệch của Neural thứ i. là tốc độ học
Tóm lại: Khi giải quyết bài toán bằng mạng nơron theo bằng luật học lan truyền ngược có những vấn đề rút ra là:
Sẽ có bao nhiêu nơron trong mạng, bao nhiêu đầu vào, bao nhiêu đầu ra và bao nhiêu lớp ẩn. Càng nhiều lớp ẩn bài toán trở nên phức tạp nhưng có thể giải quyết được những vấn đề lớn.
Luật học lan truyền ngược cung cấp một phương pháp “xấp xỉ” cho việc tìm trong không gian trọng số (nhằm tìm ra những trọng số phù hợp cho mạng). Chúng ta càng lấy giá trị của tham số học (Learning rate) càng nhỏ bao nhiêu thì sự thay đổi trọng số càng nhỏ bấy nhiêu và quỹ đạo không gian học sẽ càng trơn. Tuy nhiên điều này lại làm cho tốc độ học chậm đi. Trái lại, nếu chúng ta chọn tham số tốc độ học quá lớn, sự thay đổi lớn của các trọng số có thể làm cho mạng trở nên không ổn định. Về mặt ý tưởng, tất cả các nơron trong mạng nên chọn cùng một tốc độ học, tham số học nên gán một giá trị nhỏ. Các nơron với nhiều đầu vào nên chọn một tham số tốc độ học nhỏ hơn để giữ một thời gian học tương tự nhau cho tất cả các Neural trong mạng.
2.3.5. Sử dụng Neural Network
Sau khi đã huấn luyện mạng bởi cơ sở dữ liệu ban đầu cho hiệu suất tốt và ổn định, lúc này khi muốn nhận dạng 1 đối tượng đã được huấn luyện thì chỉ cần đưa các giá trị đầu vào của đối tượng vào mạng, đầu ra sẽ là 1 giá trị, mà từ giá trị này có thể nhận dạng được đối tượng tùy vào giá trị đầu ra đã khai báo trong quá trình huấn luyện.
Sử dụng mạng Neural Network tức là chúng ta sử dụng thuật toán học truyền ngược có thể được chia thành hai giai đoạn: lan truyền, cập nhật trọng số.
Giai đoạn 1: Lan truyền
- Lan truyền thuận của một đầu vào của mô hình huấn luyện thông qua mạng nơ-ron để tạo ra các kích hoạt đầu ra của lan truyền này.
- Truyền ngược của các kích hoạt đầu ra của lan truyền thông qua mạng lưới nơ-ron sử dụng mục tiêu huấn luyện mô hình để tạo ra các delta (sai lệch giữa giá trị mục tiêu và giá trị đầu ra thực tế) và tất cả đầu ra và các nơ-ron ẩn.
Giai đoạn 2: cập nhật trọng số
Đối với mỗi khớp thần kinh, trọng số thực hiện theo các bước sau:
- Nhân các delta đầu ra và kích hoạt đầu vào để có được gradient của trọng số của nó.
- Trừ một tỷ lệ (tỷ lệ phần trăm) từ gradient của trọng số.
Tỷ lệ phần trăm này ảnh hưởng đến tốc độ và chất lượng học; nó được gọi
là tốc độ học. Tỷ lệ này càng lớn, thì tốc độ huấn luyện nơron càng nhanh; tỷ lệ này
càng thấp, thì việc huấn luyện càng chậm. Dấu của gradient của một trọng số chỉ ra chỗ mà sai số đang gia tăng, đây là lý do tại sao trọng số phải được cập nhật theo hướng ngược lại.[15]
Tổng kết hươ 2
Như vậy, chương này đã trình bày các lý luận, cơ sở lý thuyết và thuật toán chính để thực hiện đề tài. Việc sử dụng và cách thức thực hiện các cơ sở lý thuyết trên vào trong đề tài sẽ được trình bày trong chương 3.
Ơ 3
XÂY DỰNG THUẬT TOÁN NHẬN D NG CẢM XÚC