2.2 Support Vector Machine
2.2.1 Giới thiệu SVM
Trong thống kê và khoa học máy tính thì SVM [27] đƣợc xem là một tập hợp các phƣơng pháp học có giám sát liên quan đến nhau để phân loại (classification) và phân tích hồi quy (regression analysis). SVM là một thuật toán nhị phân, nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau. Với một ộ tập mẫu hu n luyện của hai loại cho trƣớc, thuật toán SVM xây dựng một mô hình SVM để phân loại dữ liệu dựa vào hai loại tập mẫu đó.
SVM là kỹ thuật đối với việc phân lớp dữ liệu, là phƣơng pháp học sử dụng không gian giả thuyết các hàm tuyến tính trên không gian đặc trƣng nhiều chiều dựa trên lý thuyết tối ƣu và lý thuyết thống kê. Trong kỹ thuật SVM không gian dữ liệu nhập an đầu sẽ đƣợc ánh xạ vào không gian đặc trƣng và trong không gian đặc trƣng này sẽ xác định mặt siêu phẳng phân chia tối ƣu.
Bài toán phân lớp (classification) và dự đoán (prediction) là hai ài toán cơ ản và có r t nhiều ứng dụng trong t t cả các lĩnh vực nhƣ: học máy, nhận dạng, trí tuệ nhân tạo, ...
Phƣơng pháp SVM đƣợc xem là công cụ mạnh cho những ài toán phân lớp phi tuyến tính đƣợc tác giả Vapnik và Chervonenkis [27] phát triển vào năm 1995. Phƣơng pháp này thực hiện phân lớp dựa trên nguyên lý Cực tiểu hóa Rủi ro có C u trúc (Structural Risk Minimization - SRM), đƣợc xem là một trong các phƣơng pháp phân lớp giám sát không tham số tinh vi nh t cho đến nay. Các hàm
công cụ đa dạng của SVM cho phép tạo không gian chuyển đổi để xây dựng mặt phẳng phân lớp.
SVM dạng chuẩn l y một tập hợp các dữ liệu đầu vào và dự áo mỗi dữ liệu đầu vào ứng với một lớp (class) trong số hai lớp mà dữ liệu y có khả năng rơi vào. Điều này làm cho dạng chuẩn SVM trở nên không có tính xác su t mà là một công cụ inary tuyến tính. Bài toán phân lớp, sử dụng SVM nhằm mục đích tìm một siêu phẳng có iên cực đại giữa lớp mẫu âm và mẫu dƣơng, đồng thời cực tiểu hóa các mẫu không phân chia đƣợc trong tập hu n luyện. SVM dựa trên cơ sở toán học vững chắc. Tuy nhiên, việc hu n luyện mẫu sử dụng SVM đòi hỏi phải giải ài toán tối ƣu nhiều iến. Ban đầu, SVM đƣợc phát triển để giải các ài toán phân lớp, về sau do tính ƣu việt, nó còn đƣợc ứng dụng rộng rãi để giải các ài toán hồi quy.
2.2.2 Ý tưởng thuật toán
Cho trƣớc một tập hu n luyện, đƣợc iểu diễn trong không gian vector, trong đó mỗi dữ liệu là một điểm dữ liệu, phƣơng pháp này tìm ra một siêu phẳng quyết định tốt nh t có thể chia các điểm trên không gian này thành hai lớp riêng iệt tƣơng ứng là lớp + (active) và lớp – (inactive). Ch t lƣợng của siêu phẳng này đƣợc quyết định ởi khoảng cách (gọi là iên) của điểm dữ liệu gần nh t của mỗi lớp đến mặt phẳng này. Khi đó, khoảng cách iên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác. Mục đích của phƣơng pháp SVM là tìm đƣợc khoảng cách iên lớn nh t, điều này đƣợc minh họa nhƣ sau:
Lớp active
Lớp inactive
Đặc trƣngn
Đặc trƣngn+1
Hình 2.4Siêu phẳng phân chia dữ liệu thành 2 lớp active và inactive [28]
2.2.3 Phân lớp với SVM
2.2.3.1 Bài toán phân 2 lớp trong SVM
SVM thực ch t là một ài toán tối ƣu, mục tiêu của thuật toán này là tìm đƣợc một không gian F và siêu phẳng quyết định f trên không gianF sao cho sai số phân loại là th p nh t.
Xác định hàm phân lớp để phân lớp các mẫu trong thực tế, nghĩa là với một dữ liệu mới xithì cần phải xác định xiđƣợc phân vào lớp +1 hay lớp -1.
Hàm quyết định nếu dữ liệu phân chia tuyến tính:
(2-1) Trong đó: wlà vector pháp tuyến siêu phẳng; blà vector vô hƣớng.
Siêu phẳng phân chia phải thỏa:
(2-2) Siêu phẳng phân chia tối ƣu là siêu phẳng chia 2 lớp với khoảng cách giữa 2 lớp là lớn nh t.
Vector hỗ trợ (lớp -1)
Vector hỗ trợ (lớp 1) Biên
Hình 2.5Minh họa cho ài toán phân chia 2 lớp[20] [27] Trong đó:
Các điểm có nhãn +1 (lớp 1) Các điểm có nhãn -1 (lớp 2) Margin: iên có độ rộng tối đa Hyperplane: mặt phân chia tối ƣu.
Các điểm mà nằm trên hai siêu phẳng phân tách đƣợc gọi là các Support Vector (hai đƣờng siêu phẳng chính là 2 đƣờng nét đứt song song nhau trong Hình 2.5). Các điểm này sẽ quyết định đến hàm phân tách dữ liệu.
Bài toán tối ƣu ậc hai sẽ xác định siêu phẳng tối ƣu:
‖ ‖ (2-3)
Nếu thuộc tính của mẫu dữ liệu là lớn, dùng phƣơng trình Lagrange để giải quyết. Phƣơng trình Lagrange (2-1) đƣợc mô tả nhƣ sau:
∑ (2-4)
Phƣơng trình kép trên trởthành: (2-5)
Vi phân từng phần của (2-2) lần lƣợt với wvà bta đƣợc: ∑
∑ (2-6)
Từ (2-2), (2-3), (2-4) ta có ài toán tối ƣu sau:
∑ ∑ (2-7)
∑
Số lƣợng iến trong ài toán tối ƣu chính là số lƣợng mẫu của tập dữ liệu.
2.2.3.2 Bài toán phân nhiều lớp với SVM
Trƣờng hợp phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian dữ liệu thành 2 phần và quá trình này lặp lại nhiều lần. Khi đó hàm quyết định phân dữ liệu vào lớp thứ I của tập n2 lớp sẽ là:
(2-8) Những phần tử x là support vector sẽ thỏa điều kiện:
{ (2-9)
Nhƣ vậy, ài toán phân nhiều lớp sử dụng phƣơng pháp SVM hoàn toàn có thể thực hiện giống nhƣ ài toán hai lớp. Bằng cách sử dụng chiến lƣợc “một đối một” (one- against-one).
Giả sử ài toán cần phân loại có k lớp (k>1), chiến lƣợc “một đối một” sẽ tiến hành k(k-1)/2 lần phân lớp nhị phân sử dụng phƣơng pháp SVM. Mỗi lớp sẽ tiến
hành phân tách với k-1 lớp còn lại để xác định k-1 hàm phân tách dựa vào ài toán phân hai lớp ằng phƣơng pháp SVM.
a. Chi n l c m t đối m t (one-against-one)
Ý tƣởng của chiến lƣợc này: với mỗi cặp lớp, xây dựng một ộ phân lớp nhị phân, mỗi ộ phân lớp đƣợc hu n luyện trên một tập con của tập hu n luyện mà tập con này chỉ chứa các mẫu hu n luyẹn của hai lớp. Với cách này, cần xây dựng t t cả
k*(k-1)/2 ộ phân lớp, chúng đƣợc kết hợp lại với nhau và thông qua phƣơng
pháp ỏ phiếu để đánh giá kết quả phân lớp cuối cùng, lớp nào có số phiếu nhiều nh t sẽ đƣợc chọn làm kết quả dự đoán (gán nhãn).
Ƣu điểm của chiến lƣợc một đối một là tồn tại nhiều mặt phân cách khác nhau cho mỗi cặp lớp. Nếu một mẫu thuộc một lớp ị phân lớp sai thì mẫu đó vẫn còn cơ hội đƣợc phân lớp đúng nhờ vào các ộ phân lớp còn lại, theo đánh giá của các nghiên cứu liên quan chiến lƣợc này đạt kết quả phân lớp khá chính xác.
Nhƣợc điểm khi sử dụng chiến lƣợc này trong ài toán phân k lớp thì cần phải có
k*(k–1)/2 ộ phân lớp, nếu k tăng thì số ộ phân lớp sẽ tăng lên r t nhanh, nên tốc độ phân lớp giảm nhiều.
b. Chi n l c m t đối ph n c n l i (one-against-many)
Chiến lƣợc một đối phần còn lại là chiến lƣợc đơn giản nh t cho ài toán phân nhiều lớp. Gọi k là số lớp cần nhận dạng thì chỉ cần xây dựng đúng k ộ phân lớp nhị phân, một ộ phân lớp cho mỗi lớp. Với chiến lƣợc này, ộ phân lớp thứ i sẽ đƣợc hu n luyện trên toàn ộ tập mẫu để phân lớp các thành viên của lớp thứ i với t t cả các thành viên của các lớp còn lại.
Khi xây dựng các ộ phân lớp, các mẫu hu n luyện uộc phải đánh lại nhãn: các thành viên của lớp thứ i sẽ đƣợc gán nhãn là 1, còn các thành viên của các lớp còn lại sẽ đƣợc gán nhãn là -1.
Ƣu điểm của chiến lƣợc này là số ộ phân lớp ít, do đó tốc độ phân lớp nhanh hơn. Tuy nhiên, dù số ộ phân lớp ít nhƣng mỗi lần hu n luyện phân lớp thì toàn ộ tập mẫu đều tham gia hu n luyện, do đó thời gian hu n luyện tăng lên nhiều. Nhƣợc điểm chính của chiến lƣợc này là nếu một mẫu khi ị phân lớp sai thì sẽ không có cơ hội để thực hi n lại, do đó độ chính xác phân lớp của chiến lƣợc này không cao ằng chiến lƣợc “một chống một”.
2.2.4 Hồi quy trong SVM
Nhiệm vụ chính của phân tích hồi quy là sẽ xây dựng mô hình (hàm số) iểu diễn mối quan hệ giữa iến phụ thuộc với các iến độc lập. Mô hình hồi quy có dạng:
(2-10) Với mục tiêu giải quyết v n đề tối ƣu hóa hồi quy, lý thuyết cơ ản của SVM có thể đƣợc tóm tắt nhƣ sau:
Cho một tập dữ liệu hu n luyện trong đó xác
định miền dữ liệu đầu vào. Với e-Support Vector Regression, ài toán tối ƣu hóa ràng uộc cần giải quyết là:
∑ (2-11)
Sao cho: (2-12)
Và đƣa đến ài toán Quadratic programming:
∑ ( ) ( )
∑ ∑ (2-13)
Sao cho:
∑ (2-14)
Trong đó: C là tham số chuẩn tắc; là sai số cho phép; là những iến lỏng; là phần tử Lagrange.
Vector wcó dạng:
∑ (2-15)
Hàm quyết định:
∑ ( ) (2-16)
Gọi ( ) ( ) là hàm nhân của không gian đầu vào; và hàm quyết định (2-16) đƣợc viết lại nhƣ sau:
∑ ( ) (2-17)
Những điểm đầu vào với đƣợc gọi là những vector hỗ trợ (SVs).
2.3 Mạng nơron nhân tạo
Mạng nơron nhân tạo, ANN [29]là một mô hình xử lý thông tin theo cách thức xử lý thông tin của các hệ nơron sinh học. Nó đƣợc tạo nên từ một số lƣợng lớn các phầ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 đó. Một mạng nơron nhân tạo đƣợc c u hình 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ề ả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 phần tử.
Hình 2.6C u tạo một nơron nhân tạo [30]
Hình 2.6Mô tả các thành phần cơ ản của một nơron nhân tạo ao gồm:
Tập đầu vào: là các tín hiệu vào (input signals) của nơron, các tín hiệu này thƣờng đƣợc đƣa vào dƣới dạng một vector N chiều.
Tập các liên kết: mỗi liên kết đƣợc thể hiện ởi một trọng số liên kết (synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thƣờng đƣợc kí hiệu là wkj. Thông thƣờng, các trọng số này đƣợc khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và đ ợc cập nhật liên tục trong quá trình học.
Bộ tổng (summing function): thƣờng dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó.
Ngƣỡng (còn gọi là một độ lệch - ias): ngƣỡng này thƣờng đƣợc đƣa vào nhƣ một thành phần của hàm truyền.
Hàm truyền (transfer function): hàm này đƣợc dùng để giới hạn phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngƣỡng.
Đầu ra: là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra. wkN wk1 wk2 . . f(.) xN x1 x2 . . yk bk
Đầu vào Trọng số liên kết
Hàm tổng
Ngƣỡng
2.4 Mạng nơronfeed-forward
2.4.1 Mô hình nơron
Nơron với vector đầu vào có R phần tử, mỗi phần tử có trọng số w. Tổng các ngõ đầu vào có trọng số và ngƣỡng tạo nên tín hiệu vào của hàm truyền f. Nơron có thể dùng nhiều hàm truyền khác nhau để tạo ra tín hiệu đầu ra.
. . . f P1 P2 P3 PR . . . W1,1 W1,R b n a 1
Ngõ vào Neural tổng quát
= f(Wp + b)
Hình 2.7 Mô hình nơron tổng quát [31]
a +1 0 -1 n a = logsig(n)
Hình 2.8Hàm truyền log sigmoid [31] Mạng nhiều lớp thƣờng sử dụng hàm truyền log_sigmoid.
Hàm truyền logsig tạo giá trị đầu ra giữa nằm trong khoảng [0,1]. Mạng nhiều lớp cũng có thể sử dụng hàm truyền tansig. a +1 0 -1 n a = tansig(n)
Hình 2.9Hàm truyền tan sigmoidt [31]
a +1 0 -1 n a = purelin(n) Hình 2.10Hàm truyền tuyến tínht [31]
Nếu lớp cuối cùng của mạng nhiều lớp có các nơron sigmoid thì đầu ra của mạng giới hạn trong một vùng nhỏ. Nếu sử dụng nơron tuyến tính thì ngõ ra của mạng có thể l y t kỳ giá trị nào.
2.4.2 Mạng feed-forward
Feed-forward Neural Network [29] là NN mà đầu ra của một layer sẽ đƣợc sử dụng làm input cho layer kế tiếp. Điều đó có nghĩa là không có vòng lặp trong mạng thông tin luôn luôn đƣợc truyền thẳng.
Hình 2.11 Mạng feed-forward
Hình 2.11Mô tả mạng feed-forward ao gồm những đặc tính sau:
Perceptrons đƣợc sắp xếp trong các lớp (layers), lớp đầu vào là inputs,lớp đầu ra là outputs. Các lớp ở giữa (middle layers) không có kết nối với ên ngoài nên đƣợc gọi là các lớp ẩn (hidden layers).
Mỗi perceptron trong 1 layer sẽ kết nối với mỗi perceptron của layer kế tiếp. Do đó, thông tin đƣợc truyền liên tục “feed-forward” từ 1 layer đến layer kế tiếp. Không có kết nối giữa những perceptrons trong cùng 1 layer.
Mạng một lớp gồm các nơron logsig có hai đầu vào nhƣ sau:
Hình 2.12 Mạng feed-forward 1 lớp[32]
Mạng này thƣờng có một hay nhiều lớp ẩn gồm các nơron sigmoid, lớp đầu ra thƣờng là các nơron tuyến tính. Các nơron trong lớp ẩn có hàm truyền phi tuyến cho phép mạng học các mối quan hệ tuyến tính và phi tuyến giữa vector đầu vào và đầu ra. Lớp đầu ra tuyến tính cho phép mạng tạo ra giá trị trong khoảng [-1,1]. Mặt khác, nếu muốn ép uộc đầu ra của mạng (ví dụ giữa 0 và 1) thì lớp đầu ra nên sử dụng hàm truyền sigmoid (ví dụ logsig).
Hình 2.13Ví dụ về mạng feed-forward sử dụng tansig và purelin [33]
2.5 Deep learning
2.5.1 Giới thiệu Deep learning
DL gọi là phƣơng pháp học sâu, là một ngành của Machine Learning mà sử dụng mạng nơron nhân tạo (ANNs) để tạo ra các mô hình. Thuật toán dựa trên một số ý tƣởng từ mạng nơron để đƣa ra ý tƣởng cho việc học tập, hu n luyện tập mẫu dữ liệu tiếp thu nhiều tầng iểu đạt cả cụ thể lẫn trừu tƣợng, qua đó làm rõ nghĩa của các loại dữ liệu. DL đƣợc ứng dụng trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên. Điểm đặc iệt của DLlà tính chính xác dựa vào lƣợng dữ liệu, lƣợng dữ liệu có thể có kích thƣớc lớn mà không ị hạn chế. Các công ty nhƣ Google, Microsoft, Face ook đang đầu tƣ r t nhiều về lĩnh vực nghiên cứu này. Machine Learning còn gọi là máy học là một lĩnh vực của trí tuệ nhân tạo trong việc nghiên cứu và xây dựng các kỹ thuật cho phép các hệ thống “học” một cách tự động từ tập dữ liệu để giải quyết một v n đề cụ thể. Chẳng hạn, Google phân loại thƣ điện tử xem thƣ nào là thƣ rác (spam) hay không và tự động xếp vào thƣ mục tƣơng ứng. Học máy và thống kê là hai lĩnh vực có liên quan đến nhau vì cả hai lĩnh vực đều nghiên cứu và phân tích dữ liệu nhƣng khác với thống kê, học máy tập trung vào giải quyết sự phức tạp của các giải thuật trong việc tính toán.
Ngày nay, phƣơng pháp học sâu đƣợc áp dụng trong r t nhiều lĩnh vực nhƣ: Phát hiện gian lận tại ngân hàng.
Tối ƣu hóa quảng cáo dựa vào việc thống kê, phân tích dữ liệu của khách hàng. Dự đoán xu hƣớng, giá cả thị trƣờng tài chính, chứng khoán.
Phân tích hình ảnh y khoa để chẩn đoán ệnh, phát hiện các ệnh hiếm gặp. Công cụ tìm kiếm của Google.
Bộ lọc, phân loại, phát hiện thƣ rác (spam) của Gmail.
Face ook dự đoán sở thích của ngƣời dùng, đƣa ra các quảng cáo phù hợp cho từng đối tƣợng.
Amazon đƣa ra các gợi ý (recommend) cho khách hàng khi khách hàng đã vào xem một sản phẩm nào đó.
Netflix đƣa ra thị hiếu về xu hƣớng phim hiện tại, những ộ phim mà họ muốn xem.
2.5.2 Kiến trúc Deeplearning
Là mô hình kiến trúc mạng hu n luyện với nhiều layer: input layer (layer thứ 1), output layer (layer cuối cùng) và middle layer (layer nằm giữa layer thứ1 và layer cuối cùng). Layer mà không có kết nối với b t kỳthông tin gì với bên ngoài nên gọi là hidden layer. Kiến trúc nhiều layer làm việc để cải tiến không gian đặc