Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh (tt)
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG - HOÀNG VĂN HOÃN ỨNG DỤNG MẠNG NƠRON XOẮN CHO VIỆC NHẬN DẠNG ẢNH Chuyên ngành : Khoa học máy tính Mã số : 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI – 2017 Luận văn hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: TS NGUYỄN THỊ THU PHƢƠNG Phản biện 1: .…………………………………………………………… .…………………………………………………………… ………… …………………………………………………………… ………… Phản biện 2: … ………………………………………………………… .…………………………………………………………… ………… …………………………………………………………… ………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Công nghệ Bưu Viễn thông Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Công nghệ Bưu Viễn thông ii MỤC LỤC MỤC LỤC ii MỞ ĐẦU Chương – TÌM HIỂU VỀ DEEP LEARNING .2 1.1 Mạng nơron nhân tạo .2 1.1.1 Giới thiệu 1.1.2 Kiến trúc mạng 1.1.3 Huấn luyện mạng 1.1.4 Giải thuật Back – Propagation 1.1.5 Giảm lỗi cho mạng 1.2 Deep learning 1.2.1 Giới thiệu deep learning .7 1.2.2 Một số thuật toán deep learning 1.2.3 Một số ứng dụng deep learning 1.2.4 Mặt hạn chế deep learning 1.3 Kết luận chương .9 Chương 10 MÔ HÌNH CONVOLUTIONAL NƠRON NETWORK – CNN 10 2.1 Giới thiệu mạng CNN 10 2.2 Mô hình kiến trúc mạng CNN 10 2.2.1 Lớp Convolutional 10 2.2.2 Lớp RELU – Rectified linear unit 11 2.2.3 Lớp Pooling .11 2.2.4 Lớp Lớp FC – fully connected 12 2.3 Các vấn đề mạng CNN 12 2.3.1 Kết nối cục 12 2.3.2 Trọng số 12 2.4 Mô hình nhiều lớp 13 2.5 Huấn luyện mô hình .13 2.6 Bộ lọc đặt tính (Filters And Feature Map) 15 2.7 Ứng dụng mạng CNN 15 2.8 Kết luận chương .15 Chương - ỨNG DỤNG MẠNG CNN 16 CHO VIỆC NHẬN DẠNG ẢNH TRÊN MOBILE 16 3.1 Tổng quan toán nhận dạng ảnh 16 3.1.1 Giới thiệu .16 iii 3.1.2 Mô tả toán 16 3.1.3 Các bước thực phân lớp 16 3.1.4 Đánh giá mô hình 16 3.2 Xây dựng chương trình nhận dạng ảnh Mobile 17 3.2.1 Bài toán nhận dạng ảnh Mobile .17 3.2.2 Các bước thực toán 17 3.3.3 Demo chương trình nhận dạng ảnh mobile 20 3.3 Kết luận chương .21 KẾT LUẬN 22 MỞ ĐẦU Kỹ thuật học sâu (deep learning) tập lĩnh vực học máy (Machine learning) cụ thể mạng thần kinh nhân tạo (Artificial Neural Network - ANN) Trong năm gần đây, kỹ thuật học sâu ứng dụng nhiều lĩnh vực như: xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP), nhận dạng ảnh, nhận dạng tiếng nói bật lĩnh vực thị giác máy tính (Computer Vision) Trong hầu hết ứng dụng này, học sâu chứng tỏ vượt trội Vì vậy, luận văn tác giả cung cấp nhìn tổng quan mạng thần kinh nhân tạo trước giới thiệu khám phá gần học sâu với mô hình mạng nơ-ron xoắn (Convolutional Neural Network – CNN) Tác giả tập trung nghiên cứu mô hình CNN ứng dụng mô hình nhân dạng ảnh với đề tài: “Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh” Cấu trúc luận văn gồm chương: Chương 1: Tìm hiểu deep learning Chương 2: Mô hình convolutional neural network – CNN Chương 3: Ứng dụng mạng CNN cho việc nhận dạng ảnh mobile Trong đó, luận văn tập chung vào chương chương nhằm nghiên cứu ứng dụng mô hình CNN cho việc giải số toán thực tế mà cụ thể toán nhận dạng ảnh Tác giả sử dụng tập liệu ảnh loài hoa để huấn luyện, nhận dạng cài đặt ứng dụng mô hình CNN đào tạo điện thoại di động Chƣơng – TÌM HIỂU VỀ DEEP LEARNING 1.1 Mạng nơron nhân tạo 1.1.1 Giới thiệu Mạng nơron nhân tạo (ANN) mô xử lý thông tin, nghiên cứu từ hệ thống thần kinh sinh vật, giống não để xử lý thông tin Nó bao gồm số lượng lớn mối gắn kết cấp cao để xử lý yếu tố làm việc mối liên hệ giải vấn đề rõ ràng ANN giống người, học kinh nghiệm, lưu kinh nghiệm hiểu biết sử dụng tình phù hợp Đầu tiên ANN giới thiệu năm 1943 nhà thần kinh học Warren McCulloch nhà logic học Walter Pits Nhưng với kỹ thuật thời gian chưa cho phép họ nghiên cứu nhiều Những năm gần mô ANN xuất phát triển Các nghiên cứu ứng dụng thực ngành: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, kinh tế nghiên cứu ứng dụng lĩnh vực quản lý dự án xây dựng Tại Việt Nam việc nghiên cứu ứng dụng ANN trọng năm gần đà phát triển 1.1.2 Kiến trúc mạng Mạng nơron nhân tạo với cấu trúc tương tự nơron khối tính toán gồm nhiều đầu vào, đầu giá trị ngưỡng phép tín hiệu có truyền qua nơron hay không Các giá trị đầu vào nhân với trọng số w tính tổng kết với số phụ b (bias) Nếu tổng vượt giá trị ngưỡng đầu có giá trị thể nơron kích hoạt (thường +1), ngược lại giá trị chưa kích hoạt (thường -1) Các giá trị trọng số đầu vào nơron điều chỉnh thông qua trình học để xây dựng mạng nơron phù hợp cho toán cần giải Hình 1.2: Ảnh tế bào Nơron nhân tạo Inputs: Mỗi đầu vào (Input) tương ứng với thuộc tính (attribute) liệu mẫu (patterns) Các tín hiệu thường đưa vào dạng vector N chiều Output: Đầu kết ANN giải pháp cho vấn đề Connection Weights (Trọng số liên kết): Đây thành phần quan trọng ANN, thể mức độ quan trọng (độ mạnh) liệu đầu vào trình xử lý thông tin (quá trình chuyển đổi liệu từ lớp sang lớp khác) Quá trình học (Learning Processing) ANN thực trình điều chỉnh trọng số (Weight) liệu đầu vào để có kết mong muốn Thông thường, trọng số khởi tạo ngẫu nhiên thời điểm khởi tạo mạng cập nhật liên tục trình học mạng Summation Function (Hàm tổng): Tính tổng trọng số tất đầu vào đưa vào nơron Hàm tổng nơron n đầu vào tính theo công thức sau: Hàm tổng nhiều nơron lớp: Transformation (Transfer) Function (Hàm chuyển đổi): Hàm tổng (Summation Function) nơron cho biết khả kích hoạt (Activation) nơron gọi kích hoạt bên (internal activation) Các Nueron sinh kết (output) không ANN (nói cách khác output nơron chuyển đến lớp mạng nơron không) Mối quan hệ Internal Activation kết (output) thể hàm chuyển đổi (Transfer Function) Việc lựa chọn Transfer Function có tác động lớn đến kết ANN Hàm chuyển đổi phi tuyến sử dụng phổ biến ANN sigmoid (logical activation) function Trong : YT: Hàm chuyển đổi Y: Hàm tổng Kết xử lý nơron (Output) lớn, transfer function sử dụng để xử lý output trước chuyển đến lớp Đôi thay sử dụng Transfer Function người ta sử dụng giá trị ngưỡng (Threshold value) để kiểm soát output nơron lớp trước chuyển output đến lớp Nếu output nơron nhỏ Threshold không chuyển đến lớp Kiến trúc chung ANN gồm thành phần Input layer, Hidden layer output layer Trong đó, lớp ẩn (Hidden Layer) gồm nơron, nhận liệu input từ nơron lớp (Layer) trước chuyển đổi input cho lớp xử lý Trong ANN có nhiều Hidden Layer 1.1.3 Huấn luyện mạng ANN huấn luyện (Training) hay học (Learning) theo kỹ thuật học có giám sát (Supervised Learning) học không giám sát (Unsupervised Learning) Trong phạm vi luận văn tác giả chủ yếu đề cập trình huấn luyện ANN theo kỹ thuật Supervised learning Supervised learning: Quá trình Training lặp lại kết (output) ANN đạt giá trị mong muốn (Desired value) biết Điển hình cho kỹ thuật mạng Neuron lan truyền ngược (Backpropagation) Hình 1.4: Quá trình học Supervised ANN Giả sử sau tính toán từ input value cho, ta có output Y Giá trị mong muốn (Desired) Z biết trước Sự chênh lệch Y kết mong muốn Z biểu diễn tham số delta (gọi lỗi) = Z - Y Mục đích việc huấn luyện cho delta nhỏ tốt (Nếu delta =0 hoàn hảo nhất) cách điều chỉnh trọng số (weight) liệu vào Hình 1.5: Quá trình học mạng nơron 1.1.4 Giải thuật Back – Propagation Thuật toán Back – Propagation sử dụng để điều chỉnh trọng số kết nối cho tổng sai số e nhỏ Trong đó: t (xi, w): giá trị tập mẫu y (xi): giá trị kết xuất mạng Trước tiên, ta xét nơron, nơron có giá trị vào ra, giá trị có trọng số để đánh giá mức độ ảnh hưởng giá trị vào Thuật toán Back – Propagation điều chỉnh trọng số để giá trị ej = tj – yj nhỏ Trước hết ta phải xác định vị trí nơron Nơron lớp ẩn nơron lớp xuất Ta cần biết ký hiệu: Wij: vector trọng số nơron j số đầu vào i uj: vector giá trị kết xuất nơron lớp j Hình 1.6: Mô hình tính toán nơron Ta có công thức điều chỉnh trọng số Như trình điều chỉnh trọng số xác định theo công thức trên, nhiên ta cần phải xác định vị trí nơron thuộc lớp (lớp ẩn hay lớp xuất) Điều quan trọng việc tính toán cho hệ số điều chỉnh trọng số 1.1.5 Giảm lỗi cho mạng 1.1.5.1 Underfitting Underfitting mô hình ta đơn giản, giảm thiểu đáng kể loss function nên mô tả xu hướng liệu (còn gọi High Bias) Hình 1.8: Underfiting Hàm h(x) thu không tốt, thân liệu training ta thấy sai số rõ rệt chưa nói tới việc thử liệu trường hợp vấn đề gặp phải gọi Underfitting Với Underfitting đơn mô hình ta đơn giản, nên ta cần thêm thành phần đa thức để phức tạp Nên giá trị loss function lớn ta đẩy bậc hàm số lên Dĩ nhiên đẩy lên cao ta gặp vấn đề Overfitting 1.1.5.2 Overfitting Recurrent Neural Network (RNN) mô hình Deep learning đánh giá có nhiều ưu điểm tác vụ xử lý ngôn ngữ tự nhiên (NLP) RNN mô hình có trí nhớ (memory), có khả nhớ thông tin tính toán trước Không mô hình nơron truyền thống thông tin đầu vào (input) hoàn toàn độc lập với thông tin đầu (output) Về lý thuyết, RNN nhớ thông tin chuỗi có chiều dài bất kì, thực tế mô hình nhớ thông tin vài bước trước RNN tạo mạng vòng lặp bên chúng, cho phép thông tin lưu trữ lại cho lần phân tích Huấn luyện RNN tương tự huấn luyện Nơron Network truyền thống Ta sử dụng đến thuật toán backpropagation (lan truyền ngược) có chút tinh chỉnh Gradient output không phụ thuộc vào kết tính toán bước mà phụ thuộc vào kết tính toán bước trước 1.2.2.2 Long short-term memory (LSTM) Long Short Term Memory networks – thường gọi “LSTM”, trường hợp đặc biệt RNN, có khả học long-term dependencies Mô hình giới thiệu Hochreiter & Schmidhuber (1997), cải tiến lại Sau đó, mô hình dần trở nên phổ biến nhờ vào công trình nghiên cứu gần Mô hình có khả tương thích với nhiều toán nên sử dụng rộng rãi ngành liên quan LSTM thiết kế nhằm loại bỏ vấn đề long-term dependency Mô hình có cấu trúc tương tự RNN có cách tính toán khác hidden state Memory LSTM gọi hạt nhân (cells) Ta xem hộp đen nhận thông tin đầu vào gồm hidden state st-1 giá trị xt Bên hạt nhân này, chúng định thông tin cần lưu lại thông tin cần xóa đi, nhờ mà mô hình lưu trữ thông tin dài hạn 1.2.2.3 Convolution neural network (CNN) Một CNN gồm có nhiều lớp xoắn với lớp kết nối đầy đủ (đáp ứng phù hợp với mạng nơron nhân tạo tiêu biểu) đỉnh Nó sử dụng trọng số gắn liền lớp thăm dò Kiến trúc cho phép CNN tận dụng lợi cấu trúc 2D liệu đầu vào So với kiến trúc sâu khác, mạng nơron xoắn bắt đầu thể kết vượt trội ứng dụng hình ảnh giọng nói Chúng huấn luyện thuật toán lan truyền ngược CNN dễ dàng đào tạo mạng thông thường khác, có thông số ước tính hơn, khiến cho chúng trở thành kiến trúc phổ biến Mô hình CNN tác giả trình bày cụ thể chương luận văn 1.2.3 Một số ứng dụng deep learning 1.2.3.1 Hệ thống gợi ý tảng 1.2.3.2 Nhận diện hình ảnh 1.2.3.3 Phát loại bệnh gặp 1.2.3.4 Quảng cáo (Advertising) 1.2.4 Mặt hạn chế deep learning - Thứ nhất, deep learning đòi hỏi lượng liệu đầu vào khổng lồ để máy tính học hỏi Quy trình nhiều thời gian sức mạnh xử lý mà có server cỡ lớn làm Nếu đủ liệu đầu vào, hay có đủ liệu không đủ sức mạnh để xử lý, thứ diễn ý định, kết máy tính đưa không xác Thứ hai, deep learning chưa thể nhận biết thứ phức tạp hay tương tự Lý chưa có kĩ thuật đủ tốt để trí tuệ nhân tạo rút kết luận cách logic chúng chưa có khả nhận biết người 1.3 Kết luận chƣơng Trong chương 1, tác giả trình bày số vấn đề ANN vài khía cạnh deep leanring Deep learning ứng dụng nhiều lĩnh vực khác đời sống xã hội,… Tuy nhiên, đòi hỏi ngày cao thực tiễn, lĩnh vực gặp nhiều thách thức lĩnh vực thu hút quan tâm đông đảo cộng đồng ML Trong chương này, tác giả trình bày tổng quan số thuật toán deep learning Trong đó, CNN sử dụng phổ biến, đặc biệt lĩnh vực nhận dạng hình ảnh Vì vậy, chương tác giả sâu vào tìm hiểu mô hình CNN 10 Chƣơng MÔ HÌNH CONVOLUTIONAL NƠRON NETWORK – CNN Chương trình bày tổng quan mạng nơron xoắn (CNN), mô hình kiến trúc vấn đề mạng CNN, phần cuối chương có đề cập đến số ứng dụng mạng CNN 2.1 Giới thiệu mạng CNN CNN mô hình Deep learning tiên tiến giúp cho xây dựng hệ thống thông minh với độ xác cao Trong luận văn này, tác giả trình bày xoắn (Convolution - gọi tích chập giải tích hàm) ý tưởng mô hình CNN phân lớp hình ảnh áp dụng cho toán nhận dạng ảnh Trong mô hình CNN lớp liên kết với thông qua chế convolution Lớp kết convolution từ lớp trước đó, nhờ mà ta có kết nối cục Nghĩa nơron lớp sinh từ lọc (filter) áp đặt lên vùng ảnh cục nơron lớp trước 2.2 Mô hình kiến trúc mạng CNN Về mô hình mạng nơron xoắn bao gồm lớp sau: + Lớp Convolutional + Lớp RELU + Lớp Pooling + Lớp Fully connected Các lớp xếp chồng lên để tạo thành kiến trúc CNN đầy đủ Sự xếp số lượng thứ tự lớp tạo mô hình khác phù hợp cho toán khác 2.2.1 Lớp Convolutional Lớp nơi thể tư tưởng ban đầu mạng nơron xoắn Thay kết nối toàn điểm ảnh, lớp sử dụng lọc (filter) có kích thước nhỏ so với ảnh (thường 3×3 5×5) áp vào vùng ảnh tiến hành tính xoắn filter giá trị điểm ảnh vùng cục Bộ filter dịch chuyển theo giá trị bước trượt (stride) chạy dọc theo ảnh quét toàn ảnh 11 Hình 2.1: Convolution với filter 2.2.2 Lớp RELU – Rectified linear unit Lớp thường cài đặt sau lớp Convolutional Lớp sử dụng hàm kích hoạt f(x) = max(0,x) Nói cách đơn giản, lớp có nhiệm vụ chuyển toàn giá trị âm kết lấy từ lớp Convolutional thành giá trị Ý nghĩa cách cài đặt tạo nên tính phi tuyến cho mô hình Tương tự mạng truyền thẳng, việc xây dựng dựa phép biến đổi tuyến tính khiến việc xây dựng đa tầng đa lớp trở nên vô nghĩa Có nhiều cách để khiến mô hình trở nên phi tuyến sử dụng hàm kích hoạt sigmoid, tanh, … hàm f(x) = max(0,x) dễ cài đặt, tính toán nhanh mà hiệu 2.2.3 Lớp Pooling Lớp sử dụng cửa sổ trượt quét qua toàn ảnh liệu, lần trượt theo bước trượt (stride) cho trước Khác với lớp Convolutional, lớp Pooling không tính xoắn mà tiến hành lấy mẫu (subsampling) Khi cửa sổ trượt ảnh, có giá trị xem giá trị đại diện cho thông tin ảnh vùng (giá trị mẫu) giữ lại Các phương thức lấy phổ biến lớp Pooling MaxPooling ( lấy giá trị lớn nhất), MinPooling (lấy giá trị nhỏ nhất) AveragePooling (lấy giá trị trung bình) Hình 2.2: Tính toán với phƣơng pháp MaxPooling Lớp Pooling có vai trò giảm kích thước liệu Với ảnh kích thước lớn qua nhiều lớp Pooling thu nhỏ lại nhiên giữ đặc trưng cần cho việc 12 nhận dạng (thông qua cách lấy mẫu) Việc giảm kích thước liệu làm giảm lượng tham số, tăng hiệu tính toán góp phần kiểm soát tượng khớp (overfitting) 2.2.4 Lớp Lớp FC – fully connected Lớp tương tự với lớp mạng nơron truyền thẳng, giá trị ảnh liên kết đầy đủ vào nút lớp Sau ảnh xử lý rút trích đặc trưng từ lớp trước đó, liệu ảnh không lớn so với mô hình truyền thẳng nên ta sử dụng mô hình truyền thẳng để tiến hành nhận dạng Tóm lại, lớp fully-connected đóng vai trò mô hình phân lớp tiến hành dựa liệu xử lý lớp trước 2.3 Các vấn đề mạng CNN 2.3.1 Kết nối cục Trong mô hình mạng truyền ngược (feedforward nơron network) nơron đầu vào (input node) cho nơron đầu lớp Mô hình gọi mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer) Còn mô hình CNN ngược lại Các layer liên kết với thông qua chế convolution Layer kết convolution từ layer trước đó, nhờ mà ta có kết nối cục Như neuron lớp sinh từ kết filter áp đặt lên vùng ảnh cục neuron trước Hình 2.3: Kết nối cục 2.3.2 Trọng số Tương tự mạng nơron truyền thẳng, mạng nơron xoắn mô hình học khởi tạo ban đầu cho trọng số mạng ngẫu nhiên điều chỉnh thông qua trình học Thuật toán học cho mạng nơron xoắn tương tự mạng 13 nơron truyền thẳng thuật toán lan truyền ngược sử dụng gradient descent; khác chỗ mạng xoắn không liên kết đầy đủ nên độ lỗi lớp tính dựa vào phần node lớp toàn Hình 2.4: Trọng số 2.4 Mô hình nhiều lớp Một mạng nơron xoắn hình thành cách ghép lớp nêu lại với Mô hình bắt đầu với lớp Convolutional Lớp RELU thường cài đặc sau lớp Convolutional chí kết hợp hai lớp thành lớp Các lớp Convolutional hay Pooling tùy theo kiến trúc mà ta muốn xây dựng Cuối lớp fully-connected để tiến hành phân lớp Xét kiến trúc sau đây: Conv1 (with RELU) – Pooling – Conv2 (with RELU) – Pooling – FC – FC 2.5 Huấn luyện mô hình Để huấn luyện mô hình CNN, ban đầu, trọng số giá trị lọc chọn ngẫu nhiên Với hình ảnh gán nhãn qua mô hình CNN gọi trình đào tạo cho mô hình Chúng ta cần tập hình ảnh đủ lớn gán nhãn cho biết hình ảnh gì, sau đưa ảnh qua mô hình CNN Cũng giống ANN, CNN sử dụng giải thuật lan truyền ngược để huấn luyện mô hình Có thể mô tả mạng huấn luyện sau: + Trong trình lan truyền thuận (forward pass): Xét hình ảnh đào tạo với kích thước 32 x 32 x truyền qua toàn mạng Vì tất trọng số lọc khởi tạo ngẫu nhiên, đầu trường hợp tương tự như: [.1 1 1 1 1 1] nói với đầu kể không ưu tiên cho đối tượng cụ thể kết luận hợp lý đây, điều dẫn đến hàm mát lan truyền ngược 14 + Hàm mát (loss function): Loss function định nghĩa theo nhiều cách khác phổ biến MSE Trong đó: target – thực tế : output – dự đoán Giả sử biến L tương đương với đại lượng trên, dễ dàng nhận thấy giá trị hàm Loss function cao với số hình ảnh đào tạo Mục tiêu mô hình nhãn dự đoán giống nhãn đào tạo, để làm điều ta cần phải giảm thiểu giá trị loss function mà mô hình gặp phải Để giải vấn đề ta cần tìm trọng số (weight) làm ảnh hưởng đến loss function mô hình, ta cần thực backward pass qua mô hình để xử lý vấn đề Hình 2.7: Tác động trọng số đến loss function + Lan truyền ngược (backward pass): Xác định trọng số ảnh hưởng cho loss function tìm cách để làm tối thiểu loss function, thực công việc đến bước cuối cập nhật trọng số + Cập nhật trọng số (weight update): Ở bước lấy tất trọng số lọc cập nhật lại chúng để chúng thay đổi theo hướng có lợi cho mô hình Trong đó: W trọng số sau cập nhật : Wi trọng số ban đầu : ɳ bước học 15 Bước học tham số khởi tạo người lập trình Bước học lớn có nghĩa việc thực việc cập nhật trọng lượng thời gian để mô hình tập trung vào trọng số tối ưu Tuy nhiên, bước học cao dẫn đến tới bước nhảy lớn khó để xác định điểm tối ưu cần tìm Hình 2.8: Bƣớc học (learning rate) 2.6 Bộ lọc đặt tính (Filters And Feature Map) Bộ lọc (filter) ma trận có kích thước nhỏ thường 3x3 5x5, khởi tạo ban đầu Khi “trượt” filter ảnh đầu vào ứng với vùng trượt có nơron ẩn lớp ẩn đầu tiên, trình lặp lại liên tục đến trượt xong toàn ảnh cuối ta feature map Tuy nhiên thực tế cần nhiều feature map Hình 2.9: Bộ lọc đặt tính 2.7 Ứng dụng mạng CNN 2.8 Kết luận chƣơng Chương trình bày sở lý thuyết mô hình CNN, sở lý thuyết vừa tìm hiểu chương này, tác giả ứng dụng mô hình CNN cho việc nhận dạng ảnh mobile trình bày chương 16 Chƣơng - ỨNG DỤNG MẠNG CNN CHO VIỆC NHẬN DẠNG ẢNH TRÊN MOBILE 3.1 Tổng quan toán nhận dạng ảnh 3.1.1 Giới thiệu Bài toán nhận dạng ảnh ứng dụng toán phân lớp Bài toán phân lớp (classification) toán lớn lĩnh vực Machine Learning (ML) Bài toán phân lớp trình phân lớp đối tượng liệu vào hay nhiều lớp cho trước nhờ mô hình phân lớp (model) Mô hình xây dựng dựa tập liệu xây dựng trước có gán nhãn (hay gọi tập huấn luyện) Quá trình phân lớp trình gán nhãn cho đối tượng liệu 3.1.2 Mô tả toán Cho tập mẫu phân lớp trước, xây dựng mô hình cho lớp Mục đích gán mẫu vào lớp với độ xác cao Cho sở liệu D = {t1, t2,…, tn} tập lớp C = (c1,c2,…,cm} phân lớp toán xác định ánh xạ f : D -> C cho ti gán vào lớp 3.1.3 Các bước thực phân lớp Bước 1: Xây dựng mô hình phân lớp: Training Set Training Model Hình 3.1: Xây dựng mô hình Bước 2: Sử dụng mô hình Test Set Model Classifier Classifier Hình 3.2: Giai đoạn phân lớp 3.1.4 Đánh giá mô hình Đánh giá độ xác mô hình lớp quan trọng, cho phép dự đoán độ xác kết phân lớp liệu tương lai Độ xác giúp so sánh mô hình phân lớp khác Có nhiều phương pháp đánh giá có phương pháp Holdout (Splitting): 17 Trong phương pháp holdout, liệu dưa phân chia ngẫu nhiên thành phần là: tập liệu đào tạo tập liệu kiểm tra Thông thường 2/3 liệu cấp cho tập liệu đào tạo, phần lại cho tập liệu kiểm tra 3.2 Xây dựng chƣơng trình nhận dạng ảnh Mobile 3.2.1 Bài toán nhận dạng ảnh Mobile Bài toán đặt là: Cho trước tập liệu ảnh (image) số loại hoa sử dụng thuật toán CNN để xây dựng mô hình phân lớp xác định liệu thuộc loại hoa nào, toán phân loại đa lớp 3.2.2 Các bước thực toán 3.2.2.1 Thu thập liệu Dữ liệu huấn luyện, số loại hoa phổ biến lấy từ Internet, mạng xã hội facebook,… Bảng 3.1: Số lƣợng ảnh hoa thu thập đƣợc Stt Tên hoa Số lƣợng Hoa sen (Lotus) 238 Hoa cúc dại (Daisy) 633 Hoa Bồ công anh (Dandelion) 898 Hoa hồng (Rose) 641 Hoa hướng dương (Sunflowers) 699 Hoa tulips (Tulips) 799 3.2.2.2 Tiền xử lý liệu Tác giả lựa chọn hình ảnh có đặc trưng loại hoa kể trên, từ Internet liên quan đến nhãn hoa (Hoa sen - Lotus, Hoa cúc dại - Daisy, Hoa Bồ công anh Dandelion, Hoa hồng - Roses, Hoa hướng dương - Sunflowers, Hoa tulips - Tulips), sau gán nhãn cho loại hoa Công việc gán nhãn thực hoàn toàn thủ công Tập liệu cho trình huấn luyện kiểm tra gồm tổng cộng 3908 ảnh 2607 ảnh đưa vào tập liệu huấn luyện (Training set) lại 1301 ảnh đưa vào tập triểm tra (Tets set) 18 Bảng 3.2: Số lƣợng tập liệu huấn luyện tập liệu kiểm tra Stt Nhãn Trainning set Test set Lotus 159 79 Daisy 442 211 Dandelion 599 299 Roses 428 231 Sunflowers 466 233 Tulips 533 266 3.2.2.3 Xây dựng mô hình phân lớp theo CNN Trong phạm vi luận văn, tác giả sử dụng phương pháp học chuyển tiếp (Transfer Learning - trình cải tiến việc học cho nhiệm vụ thông qua việc chuyển giao kiến thức từ nhiệm vụ liên quan học) để xây dựng mô hình cho toán, điều đặc biệt việc học chuyển tiếp lớp học cũ bị loại bỏ mà thay vào lớp huấn luyện Như ta biết cấu trúc chung CNN để phân loại hình ảnh có hai phần chính: + Một chuỗi lớp xoắn + Một vài (hoặc chí một) lớp mạng nơ-ron kết nối đầy đủ Chuỗi lớp xoắn đối tượng học tập mạng, tính học liệu đầu vào chuyển tới lớp kết nối đầy đủ để phân loại Tính đưa vào lớp phân loại cuối gọi tính nút cổ chai (Bottleneck - thuật ngữ không thức sử dụng cho lớp trước lớp đầu cuối thực phân loại Lớp cuối đào tạo để đưa giá trị đủ tốt để phân loại sử dụng để phân biệt tất lớp mà yêu cầu nhận ra) Chúng ta trích xuất tính nút cổ chai từ hình ảnh cách sử dụng mô hình học sâu đào tạo trước Inception-v3 Nó phát triển Google đào tạo cho thi ImageNet (ImageNet liệu chứa 14 triệu hình ảnh với 1.000 lớp học) cách sử dụng liệu từ năm 2012 Tác giả chọn mô hình hiệu suất phân loại cao dễ cài đặt 19 Việc tính tất giá trị nút cổ chai bước trình học mô hình, công việc chiếm phần lớn thời gian suốt trình học Quá trình học mô hình cài đặt thiết lập chạy tính toán sử lí song song card đồ họa GPU Khi tính toán nút cổ chai hoàn thành, việc học bắt đầu Việc học chạy 4.000 bước, bước chọn mười hình ảnh cách ngẫu nhiên từ tập liệu huấn luyện từ đưa dự đoán Những dự đoán sau so sánh với nhãn thực tế để cập nhật trọng số lớp cuối thông qua trình truyền ngược Bảng 3.3 bảng 3.4 cho thấy trình tiếp tục, số bước thực tăng, độ xác cải thiện Bảng 3.3: Quá trình huấn luyện mạng Stt Số bƣớc Độ xác 1000 65,0% 2000 79,0% 5000 84,0% 6000 80,0% 3950 98,0% 3980 99,0% 3999 97,0% Độ xác trung bình 89,2% Bảng 3.4: Độ xác mô hình theo tensorboard 20 Bảng 3.5: Giá trị hàm loss function theo tensorboard Sau tất bước thực việc đánh giá mô hình chạy tập liệu kiểm tra Đánh giá thử nghiệm ước tính tốt mô hình đào tạo thực nhiệm vụ phân loại 3.3.3 Demo chương trình nhận dạng ảnh mobile Tác giả cài đặt thử nghiệm chương trình điện thoại Samsung Galaxy E5 với hệ điều hành Android 5.1 (Lollipop) Hình 3.6: Demo chƣơng trình Android 5.1 21 3.3 Kết luận chƣơng Trong chương này, Tác giả khảo sát khía cạnh toán phân loại ảnh dựa liệu ảnh thu thập Trên sở liệu thu thập loại hoa, tác giả tiến hành thực nghiệm với việc sử dụng mô hình CNN cho việc nhận dạng ảnh mobile Kết thực nghiệm thu cho thấy phù hợp với lý thuyết nghiên cứu 22 KẾT LUẬN Những đóng góp luận văn Qua nghiên cứu thực nghiệm, luận văn đạt kết sau: + Nghiên cứu tổng quan mạng nơron nhân tạo, deep learning số ứng dụng deep learning + Nghiên cứu chi tiết mô hình học sâu tiêu biểu thuật toán CNN + Ứng dụng thuật toán tìm hiểu để giải toán phân lớp thông qua mô hình huấn luyện CNN + Đã thu thập liệu 3908 ảnh 06 loại hoa + Đã tiến hành cài đặt thử nghiệm mô hình CNN mobile Bước đầu cho thấy hiệu CNN việc nhận dạng ảnh đạt kết tương đối khả quan Hƣớng phát triển luận văn Việc cải tiến mô hình CNN ứng dụng mô hình vào thực tế nhà nghiên cứu quan tâm xây dựng Luận án đạt số kết nêu trên, luận văn nhiều hạn chế điều kiện mặt thời gian phạm vi nghiên cứu đề tài Vì vậy, hướng nghiên cứu học viên là: + Nghiên cứu thêm mô hình CNN để tăng độ xác cho việc nhận dạng ảnh mobile từ ứng dụng thực tế + Có thể phát triển ứng dụng liệu đầy đủ chi tiết nhiều lĩnh vực - Phát triển ứng dụng để hỗ trợ việc nhận dạng ảnh cho trẻ em, người khuyết, số điểm công cộng như: Sân bay, nhà ga,… ... hình mạng nơ-ron xoắn (Convolutional Neural Network – CNN) Tác giả tập trung nghiên cứu mô hình CNN ứng dụng mô hình nhân dạng ảnh với đề tài: Ứng dụng mạng nơron xoắn cho việc nhận dạng ảnh ... trình bày chương 16 Chƣơng - ỨNG DỤNG MẠNG CNN CHO VIỆC NHẬN DẠNG ẢNH TRÊN MOBILE 3.1 Tổng quan toán nhận dạng ảnh 3.1.1 Giới thiệu Bài toán nhận dạng ảnh ứng dụng toán phân lớp Bài toán phân... tăng độ xác cho việc nhận dạng ảnh mobile từ ứng dụng thực tế + Có thể phát triển ứng dụng liệu đầy đủ chi tiết nhiều lĩnh vực - Phát triển ứng dụng để hỗ trợ việc nhận dạng ảnh cho trẻ em, người