chương 1, luận văn đã trình bày khái quát về xử lý ảnh và đặc biệt đã trình bày tương đối chi tiết về nhận dạng khuôn mặt ứng dụng cho bài toán của luận văn “Điểm danh tự động học sinh”. Trong chương tiếp theo, luận văn sẽ trình bày sơ lược về Học máy và hướng người đọc đến phần quan trọng là Học sâu. Luan van 11 Chương 2. TÌM HIỂU VỀ HỌC SÂU VÀ MÔ HÌNH MẠNG NƠRON TÍCH CHẬP Kỹ thuật Học sâu là một phạm trù nhỏ của lĩnh vực Học máy, Học sâu tập trung giải quyết các vấn đề liên quan đến mạng thần kinh nhân tạo (Artificial Neural Network - ANN) nhằm nâng cấp các công nghệ như nhận dạng giọng nói, thị giác máy tính và xử lý ngôn ngữ tự nhiên.
Bởi vậy trong chương này, luận văn sẽ trình bày khái quát về Học máy, đi sâu vào kỹ thuật Học sâu cùng một số thuật toán và ứng dụng của nó trong thực tế, đồng thời cũng trình bày chi tiết về mô hình mạng nơron tích chập (CNN) cũng như cách hoạt động, cấu trúc và việc huấn luyện mô hình CNN. Tổng quan về Học máy (Machine learning) Học máy là một công nghệ phát triển từ lĩnh vực trí tuệ nhân tạo. Các thuật toán Học máy là các chương trình máy tính có khả năng học hỏi về cách hoàn thành các nhiệm vụ và cách cải thiện hiệu suất theo thời gian. Học máy ra đời làm giảm bớt những hạn chế vốn có của AI khi nó mang lại cho máy tính khả năng có thể tìm ra mọi thứ mà không được lập trình rõ ràng.
Học máy vẫn đòi hỏi sự đánh giá của con người trong việc tìm hiểu dữ liệu cơ sở và lựa chọn các kĩ thuật phù hợp để phân tích dữ liệu. Đồng thời, trước khi sử dụng, dữ liệu phải sạch, không có sai lệch và không có dữ liệu giả. Các mô hình Học máy yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" và đánh giá mô hình. Trước đây, các thuật toán Học máy thiếu quyền truy cập vào một lượng lớn dữ liệu cần thiết để mô hình hóa các mối quan hệ giữa các dữ liệu.
Sự tăng trưởng trong dữ liệu lớn (big data) đã cung cấp các thuật toán Học máy với đủ dữ liệu để cải thiện độ chính xác của mô hình và dự đoán. Các thuật toán Học máy 2. Sau khi tìm hiểu cách tốt nhất để mô hình hóa các mối quan hệ cho dữ liệu được gắn nhãn, các thuật toán được huấn luyện được sử dụng cho các bộ dữ liệu mới. Ví dụ xác định tín hiệu hay biến số tốt nhất để dự báo lợi nhuận trong tương lai của cổ phiếu hoặc dự đoán xu hướng thị trường chứng khoán.
Học không giám sát (unsupervised learning) Trong học không giám sát, máy tính không được cung cấp dữ liệu được dán nhãn mà thay vào đó chỉ được cung cấp dữ liệu mà thuật toán tìm cách mô tả dữ liệu và cấu trúc của chúng. Ví dụ phân loại các công ty thành các nhóm công ty tương đồng dựa trên đặc điểm của chúng thay vì sử dụng tiêu chuẩn của các nhóm ngành hoặc các quốc gia. Học bán giám sát (Semi-Supervised Learning) Trong học bán giám sát, máy tính được cung cấp dữ liệu nhưng dữ liệu mới được dán nhãn một phần. Do đó phải sử dụng học không có giám sát (để khám phá và tìm hiểu cấu trúc dữ liệu đầu vào) và học có giám sát (để dự đoán cho dữ liệu không được gán nhãn) để giải quyết.
Học củng cố (Reinforcement learning) Học củng cố còn gọi là học tăng cường, thường ứng dụng vào Lý thuyết trò chơi thông qua một quá trình thử lỗi, hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được điểm số cao nhất. ví dụ như AlphaGo chơi cờ vây của Google [3] 2. Tìm hiểu về Học sâu (Deep learning) 2. Học sâu là gì? Nếu xét về thời gian xuất hiện thì AI chính là ý tưởng xuất hiện sớm nhất tiếp theo đó là sự ra đời của học máy và cuối cùng gần đây nhất chính là Học sâu.
Mặc dù xuất hiện muộn nhất nhưng Học sâu lại chính là thứ đang thúc đẩy sự bùng Luan van 13 phát của AI hiện nay. Nói một cách đơn giản nhất Học sâu là một tập hợp con của Học máy (Hình 2.1) và đề cập đến các mạng thần kinh có khả năng học dữ liệu đầu vào với các biểu diễn trừu tượng. Học sâu vượt trội hơn so với học máy truyền thống trong các vấn đề phức tạp như nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên, phân loại hình ảnh. Mối quan hệ giữa DL, ML và AI [11] Học sâu khác với Học máy là thuật toán học sâu cần được đào tạo trong một thời gian dài vì có một số lượng lớn các tham số trong khi các thuật toán Học máy truyền thống có thể được đào tạo chỉ trong vòng vài giờ.
Học sâu đóng vai trò ngày càng lớn trong công nghệ hiện đại. Về mặt lý thuyết, nó có thể vượt quá khả năng của bộ não con người, vì chúng có các thuật toán nền tảng rộng lớn, được gọi là mạng lưới thần kinh. Ngày nay, các kỹ thuật học sâu có thể được tìm thấy ở một mật độ khá cao, từ xe tự lái đến các nghiên cứu học thuật. Lịch sử Học sâu Học sâu đã xuất hiện từ rất lâu, nhưng chỉ đến những năm gần đây mới thu hút và được nghiên cứu ứng dụng trong nhiều lĩnh vực.
Quá trình phát triển của Học sâu được thể hiện qua hình sau: Luan van 14 Hình 2. Các giai đoạn phát triển Học sâu [3] 2. Tổng quan về mạng nơron nhân tạo a) Tìm hiểu về mạng nơron nhân tạo. Mạng neural nhân tạo (Artificial Neural Network: ANN), gọi tắt neural network là mô hình xử lý thông tin mô phỏng hoạt động của các hệ neuron sinh học mà cụ thể hơn ở đây là bộ não con người.3 đầu tiên là tính chất truyền đi của thông tin trên neuron, khi neuron nhận tín hiệu đầu vào từ các dendrite, khi tín hiệu vượt qua một ngưỡng (threshold) thì tín hiệu sẽ được truyền đi sang neuron khác (Neurons Fire) theo sợi trục (axon).
Neural của model toán học ở đây cũng được mô phỏng tương tự như vậy. Trong đó, thành phần cơ bản của ANN là neural nhân tạo có cách thức hoạt động và xử lý tương tự neuron sinh học. ANN được hình thành từ số lượng lớn các neural được liên kết với nhau theo cấu trúc từng tầng (layer), các neural kết nối với nhau giữa các tầng thông qua trọng số liên kết (weight). Model toán học x1 w1 z x2 w2 y w3 x3 wN xN Hình 2.
Mô hình mạng nơron [12] Luan van 15 b) Kiến trúc ANN Kiến trúc chung của ANN được mô tả trong hình 2.4 gồm 3 lớp: Lớp đầu vào (Input Layer), lớp ẩn (Hidden Layer) và lớp đầu ra (Ouput Layer). Kiến trúc 3 phần của ANN Lớp đầu vào là một chuỗi các nơron kỹ thuật số có thể nhìn thấy thông tin mà máy tính được cung cấp. Ví dụ, một tế bào thần kinh có thể phát sáng khi màu xanh lục hiện dạng trong một hình ảnh, trong khi một tế bào khác có thể phát sáng khi có hình dạng cụ thể, một đặc tính cụ thể trong dữ liệu. Lớp đầu ra cho máy tính biết phải làm gì để đáp ứng với dữ liệu đầu vào.
Trong một chiếc xe tự lái, đây sẽ là những tế bào thần kinh kỹ thuật số cuối cùng bảo máy tính quyết định tăng tốc, phanh hoặc quay đầu. Lớp ẩn chính là “Phép thuật” của mạng ANN. Lớp này lấy các nơron thần kinh từ lớp đầu vào và chuyển hướng để các nơron lớp đầu ra lấy được. Lớp ẩn bao gồm hàng ngàn hoặc hàng triệu nơron riêng lẻ, mỗi hàng được kết nối với nhau trong mạng lưới.
Hoạt động của ANN được mô tả như hình 2. Luan van 16 Hình 2. Tế bào nơron nhân tạo Các giá trị đầu vào x1, x2, … xn. Trong quá trình thực nghiệm dữ liệu này thường được đưa vào dưới dạng một véc tơ N chiều.
Tập các liên kết: Có chức năng truyền thông tin trong đó ứng với một liên kết có một trọng số (hay trọng số liên kết là số thực biểu thị mức độ quan trọng của liên kết với đầu ra - weight) W1, W2, … Wn. 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 mạng. Hàm kết hợp g (combination function): Thường dùng để tính tổng của tích các giá trị đầu vào với trọng số liên kết tương ứng của nó (vì thế một số tài liệu là hàm tổng – summing function). Hàm truyền f (transfer function) hay hàm kích hoạt (active function)}: Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi neural.
Có đầu vào là kết quả của hàm kết hợp và ngưỡng đã cho. Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng.6 dưới đây là các hàm truyền phổ biến: Luan van 17 Hình 2.
Một số hàm truyền phổ biến c) Huấn luyện ANN Chức năng của một mạng ANN được quyết định bởi các nhân tố như sau: hình trạng hay cấu trúc của mạng (số tầng, số neural trong mỗi tầng và cách các tầng liên kết với nhau) và các trọng số của các liên kết bên trong mạng. Kiến trúc mạng thường là cố định tương ứng với mỗi bài toán và các trọng số liên kết được quyết định bởi một thuật toán huấn luyện (training algorithm). Quá trình điều chỉnh các trọng số để mạng có thể nhận biết được mối quan hệ giữa đầu vào và đích mong muốn được gọi là học hay huấn luyện (learning - training). Có nhiều thuật toán dùng để huấn luyện mạng ANN trong đó thuật toán lan truyền ngược (back- propagation) được sử dụng phổ biến.
- Lan truyền ngược (back-propagation) là phương pháp huấn luyện mạng ANN với mục tiêu xác định trọng số tối ưu cho mạng thông qua việc lặp đi lặp lại 2 quá trình: lan truyền tiến (tính giá trị đầu ra của mạng từ đó tính sai số giữa giá trị này với giá trị mong muốn). Tiếp theo là quá trình lan truyền ngược sai số (dựa vào sai số sẽ cập nhật lại các trọng số). Mạng ANN có kiến trúc được tổ chức theo từng Luan van 18 tầng bao gồm tầng nhập, tầng xuất và một số tầng ẩn. Trong mỗi tầng có nhiều neural.