1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng

76 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 4,93 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hiện nay rất nhiều các bài toán nhận dạng sử dụng Deep Learning để giải quyết do Deep Learning có thể giải quyết các bài toán với số lượng lớn, kích thước đầu vào lớn với hiệu năng cũng

Trang 1

THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG

TÌM HIỂU VÀ ỨNG DỤNG TENSORFLOW

CHO BÀI TOÁN NHẬN DẠNG

GVHD: NGUYỄN MẠNH HÙNG SVTH: NGUYỄN THỊ HỒNG DUYÊN MSSV: 13141045

SVTH: TRẦN THANH LIÊM MSSV: 13141160

Tp Hồ Chí Minh, tháng 01/2018

SKL 0 0 6 4 7 1

Trang 2

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP

Trang 3

Hệ đào tạo: Đại học chính quy Mã hệ:

I TÊN ĐỀ TÀI: TÌM HIỂU VÀ ỨNG DỤNG TENSORFLOW CHO BÀI TOÁN

NHẬN DẠNG

II NHIỆM VỤ

1 Các số liệu ban đầu:

Dựa trên luận văn thạc sĩ công nghệ thông tin: “NGHIÊN CỨU VỀ MẠNG NEURAL TÍCH CHẬP VÀ ỨNG DỤNG CHO BÀI TOÁN NHẬN DẠNG BIỂN SỐ XE” của Lê Thị Thu Hằng

2 Nội dung thực hiện:

 Tìm hiểu về Machine Learning, Deep Learning, CNNs (Convolution Neural Network), Tensorflow

 Cài đặt Tensorflow trên Python bằng Anaconda

 Tìm hiểu và sử dụng một mô hình Nơron tích chập đã được huấn luyện sẵn để nhận dạng hình ảnh đối tượng đưa vào

 Đánh giá kết quả thực hiện

III NGÀY GIAO NHIỆM VỤ: 01/10/2017

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 14/01/2018

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS Nguyễn Mạnh Hùng

Trang 4

LỜI CAM ĐOAN

Chúng tôi cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi dưới

sự hướng dẫn của Tiến sĩ Nguyễn Mạnh Hùng

Các kết quả công bố trong ĐATN “Tìm hiểu và ứng dụng Tensorflow cho bài toán nhận dạng” là trung thực và không sao chép hoàn toàn từ công trình nào khác

Trần Thanh Liêm

Trang 5

Chúng em xin gửi lời cảm ơn chân thành đến Thầy Nguyễn Mạnh Hùng – Giảng

viên Trường Đại học Sư phạm Kỹ thuật Tp.HCM đã tận tình hướng dẫn trong suốt thời gian làm luận văn tốt nghiệp Thầy đã tạo rất nhiều điều kiện thuận lợi và cho những lời khuyên quý báu giúp chúng em hoàn thành tốt luận văn

Xin chân thành cảm ơn thầy cô giáo trong Trường Đại học Sư phạm Kỹ thuật Tp.HCM nói chung, các thầy cô trong Bộ môn Điện tử Công nghiệp nói riêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức quý báu và tạo điều kiện giúp đỡ trong suốt quá trình học tập trong những năm học vừa qua, giúp chúng em có được cơ sở

lý thuyết vững vàng

Cuối cùng, chúng em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, ủng hộ, giúp đỡ, động viên chúng em trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp

Xin chân thành cảm ơn!

Người thực hiện đề tài

Trần Thanh Liêm

Trang 7

vi

MỤC LỤC

Trang bìa i

Nhiệm vụ đồ án ii

Lịch trình iii

Cam đoan iv

Lời cảm ơn v

Mục lục vi

Liệt kê hình ix

Liệt kê bảng vẽ xi

Tóm tắt xii

CHƯƠNG 1 TỔNG QUAN 1

1.1 Đặt vấn đề 1

1.2 Mục tiêu 1

1.3 Nội dung nghiên cứu 2

1.4 Giới hạn 2

1.5 Bố cục 2

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4

2.1 Machine Learning 4

2.1.1 Giới thiệu về trí tuệ nhân tạo (AI) 4

2.1.2 Định nghĩa về Machine Learning 5

2.1.3 Ứng dụng của Machine Learning 5

2.1.4 Các bước giải quyết bài toán bằng phương pháp Machine Learning 6

2.1.5 Các phương pháp Machine Learning 6

2.2 Giới thiệu về Deep Learning 8

2.3 Giới thiệu về mạng nơ-ron 9

2.3.1 Mạng nơ-ron sinh học 9

2.3.2 Mạng nơ-ron nhân tạo 10

2.3.3 Suy giảm độ dốc (Gradient Descent) 13

2.3.4 Lan truyền ngược (Back Propagation) 16

2.4 Mạng nơ-ron tích chập 16

Trang 8

vii

2.4.2 Lớp ReLu 21

2.4.3 Lớp Pooling (Subsampling, Downsample) 22

2.4.4 Lớp Fully Connected 23

2.5 Giới thiệu về Tensorflow 23

2.5.1 Giới thiệu về Tensorflow 23

2.5.2 Các hàm cơ bản 24

2.5.3 Các hàm dùng cho mạng nơ-ron tích chập 27

2.5.4 Các hàm huấn luyện mô hình mạng 28

2.5.5 Tensorboard 29

2.6 VGG 31

CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 33

3.1 Giới thiệu 33

3.2 Thiết kế hệ thống 33

3.2.1 Thiết kế sơ đồ khối hệ thống 33

3.2.2 Chức năng các khối hệ thống 33

CHƯƠNG 4 THI CÔNG HỆ THỐNG 37

4.1 Giới thiệu 37

4.2 Lập trình hệ thống 37

4.2.1 Lưu đồ 37

4.2.2 Phần mềm hệ thống 39

4.2.3 Chương trình 48

CHƯƠNG 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 49

5.1 Kết quả 49

5.1.1 Tổng quan kết quả đạt được 49

5.1.2 Kết quả thực tế 49

5.2 Nhận xét và đánh giá 57

CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59

6.1 Kết luận 59

6.2 Hướng phát triển 59

TÀI LIỆU THAM KHẢO 61

Trang 9

viii

Trang 10

LIỆT KÊ HÌNH

Hình Trang

Hình 2.1: Nơ-ron thần kinh 9

Hình 2.2: Cấu tạo nơ-ron thần kinh 10

Hình 2.3: Nơ-ron nhân tạo 10

Hình 2.4: Đồ thị hàm kích hoạt 11

Hình 2.5: Mạng nơ-ron 12

Hình 2.6: Mạng nơ-ron một lớp ẩn 13

Hình 2.7: Hình dạng đồ thị hàm số J(θ) 14

Hình 2.8: Hàm số J(θ) giảm dần xuống cực tiểu gần nhất 15

Hình 2.9: Sự ảnh hưởng của α đến tốc độ học của thuật toán 15

Hình 2.10: Kiến trúcmạng nơ-ron tích chập (CNNs) 17

Hình 2.11: Cấu trúc LeNet5 17

Hình 2.12: Cấu trúc Inception 18

Hình 2.13: Tích chập ảnh vào và bộ lọc 19

Hình 2.14: Các bộ lọc dùng cho phép tích chập 20

Hình 2.15: Ảnh sau khi qua tầng conv 21

Hình 2.16: Sử dụng Zero padding vào ảnh 21

Hình 2.17: MaxPool với kích thước 2x2 và bước trượt 2 23

Hình 2.18: Luồng dữ liệu đồ thị 25

Hình 2.19: Đồ thị ngõ ra hàm sai số 30

Hình 2.20: Đồ thị mô hình tính toán trực tiếp 30

Hình 2.21: Kiến trúc VGG 31

Hình 2.22: Cấu hình mạng tích chập 32

Hình 3.1: Sơ đồ khối hệ thống nhận dạng 33

Hình 3.2: Sơ đồ quá trình tạo cơ sở dữ liệu huấn luyện 34

Hình 3.3: Sơ đồ quá trình huấn luyện 35

Hình 3.4: Sơ đồ quá trình nhận dạng 35

Hình 4.1: Lưu đồ chương trình 38

Hình 4.2: Tải Anaconda từ website 39

Hình 4.3: Cửa sổ cmd 40

Hình 4.4: Giao diện Python Shell 41

Hình 4.5: Môi trường lập trình Jupyter Notebook 42

Trang 11

x

Hình 4.8: Hướng dẫn sử dụng Jupyter Notebook 43

Hình 4.9: Hướng dẫn sử dụng Jupyter Notebook 44

Hình 4.10: Hướng dẫn sử dụng Jupyter Notebook 44

Hình 4.11: Hướng dẫn sử dụng Jupyter Notebook 45

Hình 4.12: Logo Pycharm 45

Hình 4.13: Giao diện PyCharm 46

Hình 4.14: Tải PyCharm từ website 46

Hình 4.15: Đặt tên và nơi lưu trữ project 47

Hình 4.16: Tạo Python file 47

Hình 5.1: Hình chụp đồ vật từ điện thoại 50

Hình 5.2: Hình chụp động vật từ điện thoại 51

Hình 5.3: Hình chụp quả từ điện thoại 52

Hình 5.4: a) Hình từ mô hình được huấn luyện sẵn 53

b) Hình chụp từ điện thoại 53

Hình 5.5: a)b) Hình chụp bằng camera điện thoại ở nhiều góc độ 55

Trang 12

xi

Bảng 2.1: Các kiểu dữ liệu 26

Bảng 5.1: Kết quả nhận dạng hình 5.1 50

Bảng 5.2: Kết quả nhận dạng hình 5.2 51

Bảng 5.3: Kết quả nhận dạng hình 5.3 52

Bảng 5.4: Kết quả nhận dạng a) từ ảnh huấn luyện 53

b) từ ảnh chụp bằng camera điện thoại 53

Bảng 5.5: Kết quả nhận dạng hình 5.5 55

Bảng 5.6: Thống kê kết quả nhận dạng từ ảnh chụp 57

Trang 13

TÓM TẮT

Trong những năm gần đây, khoa học công nghệ đang dần tiến đến một tầm cao mới Mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghệ nhưng Deep learning đang được nghiên cứu và phát triển với tốc độ chống mặt bởi các trung tâm nghiên cứu, các trường đại học và học viện rất nhiều các lĩnh vực được ứng dụng công nghệ mới này Deep Learning là dạng thuật toán lấy ý tưởng từ hoạt động của não bộ tới việc tiếp thu và xử lý các thông tin vào, qua đó làm rõ và phân tích đặc điểm của dữ liệu Có rất nhiều công cụ cũng như thư viện hỗ trợ cho Deep Learning như: caffe, torch, theano, tensorflow,

Đề tài: “Tìm hiểu và ứng dụng Tensorflow cho bài toán nhận dạng” tìm hiểu về Tensorflow và giới thiệu về VGG (một mô hình đã huấn luyện sẵn) và sử dụng mô hình đó cho bài toán nhận dang Đề tài chủ yếu xây dựng trên ngôn ngữ Python, nhận dạng đưa ra các dự đoán về tên của đối tượng

Chương trình do nhóm thực hiện đã được 90% mục tiêu do nhóm đề ra Hiệu suất nhận dạng cao, nhất là các đối tượng có hình dạng đặc biệt và màu sắc tốt Đối với các ảnh chất lượng thấp bị mờ nhòe hoặc không rõ đối tượng thì chương trình sẽ đưa ra các dự đoán gần giống mà chương trình đã xác định được

Trang 14

Chương 1 TỔNG QUAN

1.1 ĐẶT VẤN ĐỀ

Trong những năm gần đây, mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghệ nhưng Deep Learning đang được nghiên cứu và phát triển với tốc độ nhanh chóng bởi các trung tâm nghiên cứu, trường đại học và học viện…với rất nhiều ứng dụng trên các lĩnh vực khác nhau Deep Learning có những thuật toán dựa trên một số

ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biể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

Deep Learning đượ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 Hiện nay rất nhiều các bài toán nhận dạng sử dụng Deep Learning để giải quyết do Deep Learning có thể giải quyết các bài toán với số lượng lớn, kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống [3]

Gần đây, ta đã chứng kiến được nhiều thành tựu vượt bậc trong ngành Thị giác máy tính (Computer Vision) Các hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động [4]

Và Tensorflow là một trong những công cụ hỗ trợ mạnh cho Deep Learning, giúp người dùng xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay Xuất phát từ mục tiêu tiếp cận, bổ sung các kiến thức mới, cũng như cũng cố lại những kỹ năng kiến thức trong suốt quá trình học tập tại trường, đồng thời nghiên cứu sâu hơn về công cụ Tensorflow, ứng dụng Tensorflow áp dụng mô hình được huấn luyện sẵn vào bài toán nhận dạng Do đó, nhóm thực hiện đồ án chọn đề tài:

“Tìm hiểu và ứng dụng Tensorflow cho bài toán nhận dạng”

1.2 MỤC TIÊU

Trong luận văn này, nhóm đi vào tìm hiểu về công cụ Tensorflow và cách xây dựng mạng Convolution Neural Network (mạng nơ-ron tích chập) cũng như ý tưởng của mô hình Nơ-ron tích chập trong phân lớp ảnh (Image Classification), từ đó áp

Trang 15

dụng mô hình được huấn luyện sẵn trong việc xây dựng hệ thống nhận dạng các đối tượng thường gặp trong đời sống

1.3 NỘi DUNG NGHIÊN CỨU

 NỘI DUNG 1: Tìm hiểu về Machine Learning, Deep Learning, Tensorflow

 NỘI DUNG 2: Cài đặt Tensorflow trên Python bằng Anaconda

 NỘI DUNG 3: Tìm hiểu phương pháp xây dựng một mô hình nơ-ron tích chập

 NỘI DUNG 4: Tìm hiểu và sử dụng mô hình đã được huấn luyện sẵn, áp dụng

mô hình này để nhận dạng đối tượng

 NỘI DUNG 5: Xây dựng mô hình nhận dạng đối tượng thông qua hình ảnh chụp

Chương 2: Cơ Sở Lý Thuyết

Giới thiệu về Machine Learning, Deep Learning, Neural Network, Convolution Neural Network, Tensowflow, VGG

Chương 3: Thiết Kế và Tính Toán

Xây dựng sơ đồ khối hệ thống, chức năng của từng khối

Trang 16

Chương 4: Thi Công Hệ Thống

Cách cài đặt Tensorflow trên Python bằng Anaconda, giới thiệu các phần mềm giúp viết chương trình

Chương 5: Kết Quả, Nhận Xét và Đánh Giá

Các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh giá kết quả thu được

Chương 6: Kết Luận và Hướng Phát Triển

Tóm tắt những kết quả đạt được, những hạn chế và nêu lên các hướng phát triển trong tương lai

Trang 17

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 MACHINE LEARNING

2.1.1 Giới thiệu về trí tuệ nhân tạo (AI – Artificial Intelligence)

Ngày nay thì trí tuệ nhân tạo thì có mặt ở khắp mọi nơi Trí tuệ nhân tạo là

xu hướng mà các hãng công nghệ lớn đang hướng đến như Google, Facebook, Amazon, Microsoft, Các hãng đó đều đầu tư rất lớn vào trí tuệ nhân tạo nhắm tạo ra các sản phẩm phục vụ cho lợi ích của con người

Trí tuệ nhân tạo là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào Thuật ngữ này thường dùng để nói đến các máy tính có mục đích không nhất định và ngành khoa học nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo Nó liên quan đến việc cư xử, sự học hỏi, khả năng thích ứng thông minh của máy móc [2][3]

Bellman (1978) định nghĩa: trí tuệ nhân tạo là tự động hoá các hoạt động phù hợp với suy nghĩ con người, chẳng hạn các hoạt động ra quyết định, giải bài toán, …

Rich anh Knight (1991) thì cho rằng: Trí tuệ nhân tạo là khoa học nghiên cứu xem làm thế nào để máy tính có thể thực hiện những công việc mà hiện con người còn làm tốt hơn máy tính [3][5]

Mỗi khái niệm, định nghĩa đều có điểm đúng riêng, nhưng để đơn giản chúng ta có thể hiểu trí tuệ nhân tạo là một ngành khoa học máy tính Nó xây dựng trên một nền tảng lý thuyết vững chắc và có thể ứng dụng trong việc tự động hóa các hành vi thông minh của máy tính Giúp máy tính có được những trí tuệ của con người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi

Trang 18

Nó là thứ giúp ta sử dụng để trả lời tin nhắn tự động, học cách lái xe, lái máy bay để chúng ta có thể ngồi đó quan sát không cần phải điểu khiển, sắp xếp lại các ảnh của những chuyến đi chơi khác nhau vào những cuốn album riêng biệt, thậm chí AI còn giúp chúng ta quản lí nhà của khi đi vắng hoặc đi mua sắm nữa

2.1.2 Định nghĩa về Machine Learning

Machine Learning tương tự như AI và là một tập con của AI Nếu AI thể hiện mục tiêu của con người thì Machine Learning giúp con người đạt được mục tiêu đó Machine learning có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể

Ta có thể định nghĩa Machine Learning như sau: “là một lĩnh vực của trí tuệ nhận tạo liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có thể học Cụ thể hơn, Machine Learning là một phương pháp để tạo ra các chương trình máy tính bằng việc phân tích các tập dữ liệu đã có sẵn, nhưng khác với thống kê, Machine Learning tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán, tìm ra các mối quan hệ giữ các tập dữ liệu đó, kể cả khi không được chỉ dẫn cụ thể Nhiều bài toán suy luận được xếp vào loại bài toán khó vì thế nhiệm vụ của Machine Learning là nghiên cứu sự phát triển các giải thuật, suy luận hướng giải quyết tối ưu có thể xử lí được.” [3]

2.1.3 Ứng dụng của Machine Learning

Machine Learning có nhiều ứng dụng ta có thể phân loại như sau:

 Ứng dụng trong các bái toán phân loại: chuẩn doán bệnh, bộ lọc spam trong thư điện tử, các bài toán về nhận dạng ảnh…

 Ứng dụng trong phân cụm: phân vùng ảnh, object detection, tìm quy luật của tự nhiên (thời tiết, biến đổi khí hậu…)

 Ứng dụng trong các bài toán về xấp xỉ: dự đoán giá nhà, giá vàng, đô

la ngoại tệ, dự đoán thời tiết khí hậu…

Trang 19

2.1.4 Các bước trong giải quyết bài toán bằng phương pháp Machine Learning

Thu thập dữ liệu từ các nguồn liên quan đến bài toán xử lý (đi thu thập các mẫu để training)

Chọn các thuộc tính đặc trưng và mã hóa chúng làm cơ sở cho thực hiện Machine Learning Tùy vào các bài toán cụ thể mà mức độ phức tạp của các đặc trưng có thể khác nhau Đối với các bài toán có nhiều đặc tính để chọn, nếu ta chọn hết các đặc tính có thể dẫn đến mất thời gian trong quá trình xử lý cũng như tính toán Trong những trường hợp này ta có thể hực hiện một số thuật toán

về việc lựa chọn thuộc tính như tìm kiếm ngược, tìm kiếm chuyển tiếp…

Chọn các mô hình được đào tạo phù hợp để áp dụng Mỗi mô hình có thể phù hợp với từng lớp bài toán, tuy nhiên một bài toán cũng có thể được giải quyết bằng nhiều mô hình khác nhau

2.1.5 Các phương pháp Machine Learning

a Học không giám sát (Unsupervised Learning)

Chúng ta không biết được đầu ra (outcome) hay các nhãn mà chỉ có dữ liệu đầu vào Thuật toán Unsupervised Learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán

Các bài toán Unsupervised Learning được tiếp tục chia nhỏ thành hai loại:

Clustering (phân nhóm)

Một bài toán phân nhóm toàn bộ dữ liệu XX thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm Ví dụ: phân nhóm khách hàng dựa trên hành vi mua hàng Điều này cũng giống như việc ta đưa cho một đứa trẻ rất nhiều mảnh ghép với các hình thù và màu sắc khác nhau, ví dụ tam giác, vuông, tròn với màu xanh và đỏ, sau đó yêu cầu trẻ phân chúng thành từng

Trang 20

nhóm Mặc dù không cho trẻ biết mảnh nào tương ứng với hình nào hoặc màu nào, nhiều khả năng chúng vẫn có thể phân loại các mảnh ghép theo màu hoặc hình dạng

b Học có giám sát (Supervised Learning)

Đây là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new

input) dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là (data, label) nghĩa là (dữ liệu, nhãn) Supervised Learning là nhóm

phổ biến nhất trong các thuật toán Machine Learning Sai số giữa đầu ra thực và đầu ra mong muốn sẽ được dùng để điều chỉnh các trọng số của mạng về gần hơn với kết quả mong muốn

Thuật toán Supervised Learning còn được tiếp tục chia nhỏ ra thành hai loại chính:

Classification (Phân loại)

Một bài toán được gọi là classification nếu các label của input

data được chia thành một số hữu hạn nhóm Ví dụ: Gmail xác định xem một

email có phải là spam hay không; các hãng tín dụng xác định xem một khách hàng có khả năng thanh toán nợ hay không Ba ví dụ phía trên được chia vào loại này

Trang 21

Regession (Hồi quy)

Nếu label không được chia thành các nhóm mà là một giá trị thực cụ

thể Ví dụ: một căn nhà rộng x m2, có y phòng ngủ và cách trung tâm thành phố z km sẽ có giá là bao nhiêu?

Như vậy học có giám sát, số lớp cần phân loại đã được biết trước, dựa vào

dữ liệu đầu vào và đầu ra để tính toán dự đoán cho các dữ liệu tiếp sau

2.2 GIỚI THIỆU VỀ DEEP LEARNING

Deep Learning đã và đang là một chủ đề được đề cập rộng rãi gần đây Là một phạm trù nhỏ của Machine Learning, Deep Learning tập trung giải quyết các vấn đề liên quan đến mạng thần kinh nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, tầm nhìn máy tính và xử lý ngôn ngữ tự nhiên, đó là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biể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 Điểm đặc biệt của Deep Learning là 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 khổng lồ mà không bị hạn chế [2]

Deep Learning đang trở thành một trong những lĩnh vực nóng nhất trong khoa học máy tính Chỉ trong vài năm, Deep Learning đã thúc đẩy tiến bộ trong

đa dạng các lĩnh vực như nhận thức sự vật (object perception), dịch tự động (machine translation), nhận diện giọng nói,… những vấn đề từng rất khó khăn với các nhà nghiên cứu trí tuệ nhân tạo

Và để xây dựng được các mô hình của Deep Learning như đã nói ở trên chúng ta cần có một số công cụ hỗ trợ như Caffe, Torch, Tensorflow, Theano Trong đề tài này nhóm đã quyết định chọn công cụ Tensorflow để nghiên cứu và xây dựng mô hình nhỏ về Deep Learning

Trang 22

2.3 GIỚI THIỆU VỀ MẠNG NƠ-RON (NEURAL NETWORKS)

2.3.1 Mạng nơ-ron sinh học

Bộ não con người gốm hàng trăm tỉ tế bào thần kinh gọi là nơ-ron Thân của nơ-ron gọi là soma, soma nhận dữ liệu dưới dạng xung điện từ các dendrites nối liền với chúng Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon Khác với dendrites, axon có khả năng phát ra các xung điện từ nơ-ron đến nơi khác, chỉ khi nào điện thế trong soma vượt quá một giá tri ngưỡng nào đó thì axon mới phát xung điện, còn nếu không thì nó sẽ ở trạng thái nghỉ Axon nối với các dendrites của các nơ-ron khác thông qua những mối nối đặc biệt gọi là synapse Khi điện thế của synapse tăng lelen do các xung phát ra từ axon thì synapse sẽ nhả ra một số chất hóa học neurotransmiters, các chất này “mở cửa” trên dendrites, để cho các ion truyền qua Chính dòng ion này làm thay đổi điện thế trên dendrite, tạo ra các xung dữ liệu lan truyền đến các nơ-ron khác

Hình 2.1 Nơ-ron thần kinh

Có thế tóm tắt hoạt động của một nơ-ron như sau: nơ-ron lấy tổng các điện thế mà nó nhận được và phát ra một xung điện nếu tổng ấy lớn hơn một ngưỡng nào đó Các nơ-ron nối với nhau ở các synapse Synapse được gọi là mạnh khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các nơ-ron khác Ngược lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn

Trang 23

Hình 2.2 Cấu tạo nơ-ron thần kinh

Khi con người học tập thì hoạt động của các synapse được tăng cường, tạo nên nhiều liên kết mạng giữa các nơ-ron Vậy người nào học càng giỏi thì các synapse sẽ càng mạnh mẽ và liên kết của các nơ-ron sẽ càng nhiều

2.3.2 Mạng nơ-ron nhân tạo

a Nơ-ron đơn lẻ

Hình 2.3 Nơ-ron nhân tạo

Lấy ý tưởng từ mạng nơ-ron sinh học trên, nơ-ron nhân tạo ra đời với cấu trúc tương tự trong đó một nơ-ron là một khối tính toán gồm nhiều đầu vào (input), một đầu ra (output) Mỗi tín hiệu đầu vào được nhân với một trọng số tương ứng, trọng số này thể hiện mức độ ảnh hưởng của ngõ vào đối với ngõ ra,

nơ-ron sẽ lấy tổng của các tích này cộng với bias rồi áp dụng vào một hàm f phi tuyến, hàm f này được gọi là hàm kích hoạt (activate function), mục đích của hàm f là biến đổi dữ liệu đầu vào thành tín hiệu phi tuyến Điều này rất quan

trọng vì hầu hết dữ liệu thực tế đều là phi tuyến và mục đích là muốn nơ-ron học tính phi tuyến đó

Trang 24

Các hàm kích hoạt thường được áp dụng trong máy học như sau:

 Sigmoid: biến đổi giá trị đầu vào thành giá trị nằm trong khoảng (0,1)

Hình 2.4 Đồ thị hàm kích hoạt

a Mạng nơ-ron

Mạng nơ-ron là một tập hợp các nơ-ron đơn lẻ được sắp xếp vào các lớp tùy vào mục đích của từng nơ-ron nhằm thực hiện các phép tính phức tạp mà nơ-ron đơn lẻ không thể thực hiện

Trang 25

 Nơ-ron ẩn: các nơ-ron này không có sự liên kết nào đối với bên ngoài

mô hình mạng nên được gọi là nơ-ron ẩn Chúng thực hiện các phép tính và truyền tải thông tin từ nơ-ron đầu vào đến nơ-ron đầu ra Tập hợp các nơ-ron ẩn tạo nên lớp ẩn trong mạng

 Nơ-ron đầu ra: nơ-ron đầu ra có nhiệm vụ thực hiện các phép tính và truyền thông tin ra bên ngoài mạng Tập hợp các nơ-ron đầu ra tạo nên lớp ra Một mô hình mạng nơ-ron có thể không có lớp ẩn hoặc có nhiều lớp ẩn, với nhiều lớp ẩn mạng nơ-ron có thể thể hiện bất kỳ một hàm phi tuyến nào, nếu không có lớp ẩn mạng nơ-ron chỉ có thể học được các hàm tuyến tính

Hình 2.6 là mạng nơ-ron nhiều lớp với một lớp ẩn Mỗi liên kết các nơ-ron đều có các trọng số tương ứng nhưng trên hình vẽ chỉ thể hiện ba trọng số ở lớp

vào (w0, w1, w2)

Trang 26

Lớp vào có ba nơ-ron với hai nơ-ron x1, x2 nhận dữ liệu từ bên ngoài đưa

vào mô hình mạng, bias cũng được xem là một nơ-ron với giá trị luôn bằng một Như đã trình bày ở trên, không có phép tính nào được thực hiện ở lớp này

2.3.3 Suy giảm độ dốc (Gradient Descent)

Mục đích của việc thiết kế là tìm một thuật toán có thể tự động tìm trọng số

và bias nhằm đưa ra output có giá trị xấp xỉ y(x) mong muốn từ tất cả các x đưa

vào Để đánh giá mức độ xấp xỉ gần đúng thì sử dụng hàm sai số (cost function)

có dạng J(w)

Trang 27

w là tập các trọng số, nếu có một thuật toán huấn luyện tìm ra được trọng

số khiến cho J(w) ≈ 0 thì đó là một thuật toán tốt, ngược lại đó sẽ là thuật toán chưa tốt nếu J(w) có giá trị lớn, khi đó giá trị tính toán được và giá trị mong

muốn sai khác nhiều Vậy mục đích là tối thiểu hóa hàm sai số xuống nhỏ nhất

có thể và để làm được điều đó sinh viên áp dụng thuật toán suy giảm độ dốc (Gradient Descent)

Đạo hàm của một hàm số là mô tả sự biến thiên của hàm số đó tại từng điểm trên hàm số Giả sử hàm J(θ) bất kỳ có dạng đồ thì như sau:

Hình 2.7 Hình dạng đồ thị hàm số J(θ)

Với điểm θ bất kỳ ban đầu, J(θ) đang ở điểm A, rõ ràng ở vị trí A đồ thị trên đang có xu hướng giảm (đạo hàm tại điểm A < 0), nếu tăng θ thì J(θ) sẽ giảm Khi tăng θ để A tiến đến B như hình 2.6, khi đó J(θ) giảm xuống Vậy với giá trị θ hiện tại, thuật toán đã biết tăng hay giảm θ để giá trị của J(θ) giảm xuống Nếu thực hiện lặp đi lặp lại phương pháp này thì J(θ) sẽ giảm dần xuống giá trị cực tiểu gần nhất.Như vậy, giải thuật gồm các bước sau:

 Khởi tạo θ bất kỳ

 Liên tiếp thay đổi θ := θ – α* J’(θ)

 Dừng lại khi J(θ) thay đổi không đáng kể

Trang 28

Trong đó α được gọi là tốc độ học (learning rate) dùng để thay đổi tốc độ học của thuật toán Việc xác định tốc độ tìm ra cực tiểu của hàm số phụ thuộc vào thông số này, cụ thể là:

 α quá nhỏ sẽ khiến cho các bước đi xuống dốc của J(θ) cũng nhỏ dẫn đến việc tìm ra cực tiểu mất nhiều thời gian hơn

 α quá lớn sẽ khiến cho các bước đi trở nên lớn, có thể khiến cho J(θ) lớn hơn giá trị hiện tại

Hình 2.8 Hàm số J(θ) giảm dần xuống cực tiểu gần nhất

Hình 2.9 Sự ảnh hưởng của α đến tốc độ học của thuật toán

Trang 29

2.3.4 Lan truyền ngƣợc (Back Propagation)

Thuật toán Lan Truyền Ngược (Back propagation) là phương pháp huấn luyện thông dụng trong mạng nơ-ron và được sử dụng kết hợp với thuật toán tối

ưu suy giảm độ dốc Thuật toán này lặp lại hai quá trình đó là sự lan truyền

(propagation) và cập nhật trọng số w Một vector đầu vào sẽ lan truyền trong

mạng, qua từng lớp một đến lớp đầu ra Ngõ ra của mỗi nơ-ron trong lớp đầu ra

sẽ so sánh với giá trị mong muốn bằng cách sử dụng hàm sai số Giá trị sai số ngõ ra sẽ lan truyền ngược về các nơ-ron mà có mối liên hệ đến giá trị ngõ ra ban đầu

Thuật toán lan truyền ngược sẽ sử dụng những giá trị sai số này để tính độ dốc của hàm sai số tương ứng với các trọng số trong mạng nơ-ron Sau đó, các giá trị độ dốc sẽ dùng để cập nhật các giá trị trọng số mới bằng thuật toán tối ưu, nhằm làm tối thiểu hàm sai số

2.4 MẠNG NƠ-RON TÍCH CHẬP (CNNs – CONVOLUTION NEURAL NETWORKS)

Mô hình mạng nơ-ron nhân tạo ra đời đã được áp dụng nhiều trong các bài toán nhận dạng Tuy nhiên mạng nơ-ron nhân tạo không thể hiện tốt lắm đối với các dữ liệu hình ảnh Chính sự liên kết quá đầy đủ tạo nên những hạn chế của

mô hình Dữ liệu hình ảnh có kích thước khá lớn, một tấm ảnh xám có kích thước 32x32 pixels sẽ cho ra vector đặc trưng 1024 chiều, còn đối với ảnh màu cùng kích thước sẽ là 3072 chiều Điều này cũng có nghĩa cần tới 3072 trọng số

w nối giữa lớp vào và một nơ-ron ở lớp ẩn kế tiếp Số lượng trọng số sẽ càng nhân lên nữa nếu số lượng lớp ẩn và số nơ-ron trong lớp ẩn tăng lên Như vậy chỉ với một bức ảnh nhỏ cũng cần tới một mô hình đồ sộ Điều này khiến cho việc thao tác với các ảnh có kích thước lớn hơn trở nên khó khăn

Một điều nữa là việc liên kết một cách đầy đủ các điểm ảnh vào một nơ-ron trong mạng có vẻ là dư thừa vì sự phụ thuộc lẫn nhau giữa các điểm ảnh xa nhau

là không nhiều mà chủ yếu là sự phụ thuộc giữa các điểm lân cận với nó Dựa

Trang 30

trên tư tưởng này mạng nơ-ron tích chập (Convolution Neural Networks) ra đời Thay vì toàn bộ ảnh nối với một nơ-ron thì chỉ có một phần cục bộ trong ảnh nối đến một nơ-ron trong lớp tiếp theo Dữ liệu hình ảnh thông qua các lớp của mô hình này sẽ được “học” ra các đặc trưng để tiến hành phân lớp một cách hiệu quả Về cơ bản mô hình mạng nơ-ron tích chập bao gồm các lớp sau: lớp tích chập (Convolutional Layer), lớp ReLU, lớp Pooling, lớp Fully connected

Hình 2.10 Kiến trúcmạng nơ-ron tích chập (CNNs)

Việc xắp xếp các lớp này tạo nên các cấu trúc có độ phức tạp và khả năng khác nhau, ví dụ các cấu trúc mạng nổi tiếng như: LeNet5, AlexNet, Inception, VGG,…

Hình 2.11 Cấu trúc LeNet5

Trang 31

Hình 2.12 Cấu trúc Inception

2.4.1 Lớp tích chập (Convolution)

a Convolution (tích chập)

Theo toán học, tích chập là phép toán tuyến tính, cho ra kết quả là một hàm

bằng việc tính toán dựa trên hai hàm đã cho (f và g)

Công thức tích chập giữa hàm ảnh f(x, y) và bộ lọc k(m, n):

(2.6.1)

Thành phần không thể thiếu của phép tích chập là ma trận bộ lọc (kernel) Điểm neo (anchor point) của kernel sẽ quyết định vùng ma trận tương ứng trên ảnh để tính chập, thông thường điểm neo được chọn là tâm của bộ lọc Giá trị của phép chập là tổng hợp với lần lượt từng giá trị độ xám của các điểm ảnh trong vùng tương ứng với bộ lọc

Phép tích chập được thực hiện theo cách dịch chuyển ma trận bộ lọc lần lượt qua tất cả các điểm trong ảnh, bắt đầu tù góc trên bên trái ảnh Và đặt điểm neo tương ứng tại điểm ảnh đang xét, thực hiện tính toán bằng công thức tích chập

Trang 32

b Tầng convolution (conv)

Là tầng quan trọng nhất của cấu trúc CNNs, conv dựa trên lý thuyết của xử

lý tín hiệu số, việc lấy tích chập sẽ giúp trích xuất được những thông tin quan trọng của dữ liệu Lớp này thay vì kết nối toàn bộ điểm ảnh ban đầu, nó sẽ sử dụng các bộ lọc (filter) có kích thước nhỏ hơn so với ảnh (thường là 3x3 hoặc 5x5) áp vào một vùng trong ảnh và tiến hành tính tích chập giữa bộ lọc và giá trị điểm ảnh trong vùng cục bộ đó Bộ lọc sẽ lần lượt được dịch chuyển theo một giá bước trượt (stride) chạy dọc theo ảnh và quét toàn bộ ảnh

Dựa vào hình 2.14 có thể thấy ứng dụng của tích chập với các bộ lọc khác nhau Việc thay đổi các giá trị trong bộ lọc có thể thực hiện các phép biến đổi ảnh khác nhau như làm nét ảnh (Sharpen), làm mờ ảnh (Blur), … Điều này có nghĩa với các bộ lọc khác nhau có thể chiết xuất các đặc trưng khác nhau của ảnh như cạnh và đường cong trong ảnh

Hình 2.13 Tích chập ảnh vào và bộ lọc

Trang 33

Tóm lại việc sử dụng conv có các ưu điểm sau:

 Giảm số lượng tham số: ở ANN truyển thống, các nơ-ron lớp trước sẽ kết nối đầy đủ với lớp sau (full connected) gây lên tình trạng quá nhiều tham số cần học Đây là nguyên nhân chính gây nên tình trạng overfiting cũng như làm tăng thời gian huấn luyện Với việc sử dụng conv trong đó cho phép chia sẻ trọng số liên kết (shared weights), cũng như thay vì sử dụng full connected sẽ sử dụng local receptive fields giúp giảm tham số

 Các tham số trong quá trình sử dụng conv hay giá trị của các bộ lọc – kernel sẽ được học trong quá trình huấn luyện Như giới thiệu ở phần trên các thông tin này biểu thị các đặc trưng như góc, cạnh, đốm màu… như vậy việc sử dụng conv sẽ giúp xây dựng mô hình tự học ra đặc trưng

Trang 34

Hình 2.15 Ảnh sau khi qua tầng conv

Có một điều cần lưu ý rằng khi thực hiện phép tích chập vào ảnh thì kích thước của ảnh sẽ giảm tùy theo vào kích thước bộ lọc Giả sử khi sử dụng bộ lọc

có kích thước 5x5x3 vào một ảnh màu có kích thước 32x32x3 thì kết quả của phép tích chập sẽ là ảnh 28x28x3 Điều này sẽ làm mất đi thông tin trong ảnh, vì vậy để giữ được các thông tin phải thêm vào các giá trị 0 trong ảnh như hình 2.16 Phương pháp này được gọi là Zero padding

Hình 2.16 Sử dụng Zero padding vào ảnh

2.4.2 Lớp ReLu

Lớp này thường được đặt ngay sau lớp tích chập Lớp này sử dụng hàm

kích hoạt f(x) = max(0,x) Nói một cách đơn giản, lớp này có nhiệm vụ chuyển

toàn bộ giá trị âm trong kết quả lấy từ lớp tích chập thành giá trị 0 Ý nghĩa của cách cài đặt này chính là tạo nên tính phi tuyến cho mô hình Tương tự như

Trang 35

trong mạng truyền thẳng, việc xây dựng dựa trên các phép biến đổi tuyến tính sẽ khiến cấu trúc đa tầng đa lớp trở nên vô nghĩa Có rất nhiều cách để khiến mô hình trở nên phi tuyến như sử dụng các hàm kích hoạt sigmoid, tanh,… nhưng

hàm f(x) = max(0,x) dễ cài đặt, tính toán nhanh mà vẫn hiệu quả

2.4.3 Lớp Pooling (Subsampling, Downsample)

Lớp này sử dụng một cửa sổ trượt quét qua toàn bộ ảnh dữ liệu, mỗi lần trượt theo một bước trượt cho trước Khác với lớp tích chập, lớp Pooling không tính tích chập mà tiến hành lấy mẫu (subsampling) Khi cửa sổ trượt trên ảnh, chỉ có một giá trị được xem là giá trị đại diện cho thông tin ảnh tại vùng đó (giá trị mẫu) được giữ lại Các phương thức lấy phổ biến trong lớp Pooling là 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)

Xét một ảnh có kích thước 32x32 và lớp Pooling sử dụng bộ lọc có kích thước 2x2 với bước trượt = 2, phương pháp sử dụng là MaxPooling Filter sẽ lần lượt duyệt qua ảnh, với mỗi lần duyệt chỉ có giá trị lớn nhất trong 4 giá trị nằm trong vùng cửa sổ 2x2 của filter được giữ lại và đưa ra đầu ra Như vậy, sau khi qua lớp Pooling, ảnh sẽ giảm kích thước xuống còn 16x16

Lớp Pooling có vai trò giảm kích thước dữ liệu Với một ảnh có kích thước qua nhiều lớp Pooling sẽ được thu nhỏ lại tuy nhiên vẫn giữ được những đặc trưng cần cho việc nhận dạng Việc giảm kích thước dữ liệu sẽ làm giảm lượng tham số, tăng hiệu quả tính toán

Trang 36

Hình 2.17 MaxPool với kích thước 2x2 và bước trượt 2

2.4.4 Lớp Fully Connected

Lớp này tương tự với mạng nơ-ron truyền thẳng, các giá trị ảnh được liên kết đầy đủ vào nơ-ron trong lớp tiếp theo Sau khi ảnh được xử lý và rút trích đặc trưng từ các lớp trước đó, dữ liệu ảnh sẽ không còn quá lớn so với mô hình truyền thẳng nên có thể sử dụng mô hình để tiến hành nhận dạng Tóm lại, lớp fully connected đóng vai trò như một mô hình phân lớp và tiến hành dựa trên dữ

liệu đã được xử lý ở các lớp trước đó

2.5 GIỚI THIỆU VỀ TENSORFLOW

2.5.1 Giới thiệu về Tensorflow

Tensorflow là thư viện phần mềm mã nguồn mở dành cho máy học được phát triển bởi Google Brain Tuy nhiên cũng có hàng chục thư viện khác dành cho máy học được phát triển bởi các công ty lớn

Theano, Torch, Tensorflow là nổi tiếng nhất trong máy học Torch được viết bằng ngôn ngữ Lua, đây là ngôn ngữ có nhiều tính năng tuyệt vời nhưng lại không thông dụng đối với những ai mới tiếp cận trong lĩnh vực lập trình Ngoài

ra thư viện Torch ít được phổ biến trong cộng đồng phát triển và cộng đồng nghiên cứu Machine Learning (Máy Học)

Trang 37

Theano lại đòi hỏi rất nhiều thời gian để thiết lập cấu trúc một mô hình huấn luyện, vì vậy rất khó để viết chương trình và debug (tìm và sửa lỗi)

Tensorflow có giao diện thân thiện hơn Theano Các mô hình có thể được thiết lập với chỉ vài dòng code Ngoài ra, Tensorflow có thể áp dụng đưa ra sản phẩm vào thị trường còn Theano hầu như chỉ phục vụ cho việc nghiên cứu

Tổng quát đề tài sử dụng Tensorflow là vì:

 Ngôn ngữ Python

 Hỗ trợ CPUs, GPUs

 Hỗ trợ nhiều nền tảng: Android, Windows, iOS, Linux

 Hỗ trợ quan sát đồ thị (Tensor Board)

 Cộng đồng phát triển lớn

Tensorflow sử dụng mô hình tính toán trực tiếp trên đồ thị (data flow graph) Luồng dữ liệu đồ thị sử dụng hai đơn vị cơ bản: Nút (node) đại diện cho phép tính toán học, cạnh (edge) đại diện cho các số, ma trận hoặc các mảng đa chiều (tensor)

Tensorflow sử dụng tình toán trên luồng dữ liệu đồ thị giúp chia các phép tính thành các phần nhỏ và riêng rẽ, việc này làm cho Tensorflow có khả năng tự thực hiện các phép tính đạo hàm ở bất kỳ nút nào tính theo các nút khác mà có thể ảnh hưởng đến kết quả đầu ra của nút đầu tiên Ngoài ra chia nhỏ các phép tính giúp ta dễ dàng phân phát công việc cho CPUs, GPUs hơn

Trang 38

Sau đó là tạo một phép tính cộng trên hai hằng số trên:

c = tf.add(a,b)

Hình 2.18 Luồng dữ liệu đồ thị

Tiếp theo là khởi tạo một phiên làm việc (session) để chạy chương trình

Có thể hiểu phiên làm việc là nơi chứa các đồ thị, giúp ta quản lý và quan sát các đồ thị

session = tf.Session()

Tới đây một đồ thị tính toán đã được định nghĩa đầy đủ Tuy nhiên chưa có một phép tính nào được tính toán đến khi gọi phép tính đó bằng lệnh sau:

result = session.run(c) session.close()

Kết quả in ra màn hình: result = 5 Sau khi thực hiện xong phiên làm việc

phải giải phóng dữ liệu bộ nhớ bằng session.close()

Ngày đăng: 28/11/2021, 09:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Thanh Hải, 2014. Giáo trình Xử lý ảnh. Thành phố Hồ Chí Minh: NXB Đại học Quốc gia TPHCM Sách, tạp chí
Tiêu đề: Giáo trình Xử lý ảnh
Nhà XB: NXB Đại học Quốc gia TPHCM
[2] Lê Thị Thu Hằng, 2016. Nghiên cứu về mạng neural tích chập và ứng dụng cho bài toán nhận dạng biển số xe. Luận văn Thạc sĩ. Trường Đại học Công nghệ thông tin Hà Nội Sách, tạp chí
Tiêu đề: Nghiên cứu về mạng neural tích chập và ứng dụng cho bài toán nhận dạng biển số xe
[3] Trịnh Loan, 2016. Deep Learning: công nghệ đang giúp cả thế giới phát triển với tốc độ chưa từng thấy. https://www.techsignin.com/tintuc/deep-learning-cong-nghe-giup-the-gioi-phat-trien/ (truy cập ngày 05/10/2017) Sách, tạp chí
Tiêu đề: Deep Learning: công nghệ đang giúp cả thế giới phát triển với tốc độ chưa từng thấy
[4] Nguyễn Đắc Thành, 2017. Nhận dạng và phân loại hoa quả trong ảnh màu. Luận văn Thạc sĩ. Trường Đại học Công nghệ Đại Học Quốc Gia Hà Nội Sách, tạp chí
Tiêu đề: Nhận dạng và phân loại hoa quả trong ảnh màu
[5] A. Krizhevsky, I. Sutskever, and G. E. Hinton, 2012. ImageNet Classification with Deep Convolutional Neural Networks. Advances In Neural Information Processing Systems, pp 1-9 Sách, tạp chí
Tiêu đề: Advances In Neural Information Processing Systems
[6] Q. V Le, 2013. Building High-Level Features Using Large Scale Unsupervised Learning, Acoustics, Speech and Signal Processing (ICASSP), IEEE International Conference, pp. 8595–8598 Sách, tạp chí
Tiêu đề: Acoustics, Speech and Signal Processing (ICASSP), IEEE International Conference
[7] Adrian Rosebrock, 2017. ImageNet: VGGNet, ResNet, Inception, and Xception with Keras. https://www.pyimagesearch.com/2017/03/20/imagenet-vggnet-resnet-inception-xception-keras/ (truy cập ngày 15/10/2017) Sách, tạp chí
Tiêu đề: ImageNet: VGGNet, ResNet, Inception, and Xception with Keras
[8] Tensorflow, 2017. Getting Started With TensorFlow. https://www.tensorflow.org/get_started/get_started (truy cập ngày 15/11/2017.) Sách, tạp chí
Tiêu đề: Getting Started With TensorFlow
[9] Tensorflow, 2017. Installing TensorFlow. https://www.tensorflow.org/install/ (truy cập ngày 15/11/2017) Sách, tạp chí
Tiêu đề: Installing TensorFlow

HÌNH ẢNH LIÊN QUAN

Hình 2.5. Mạng nơ-ron - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.5. Mạng nơ-ron (Trang 25)
Hình 2.6. Mạng nơ-ron một lớp ẩn - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.6. Mạng nơ-ron một lớp ẩn (Trang 26)
Hình 2.7. Hình dạng đồ thị hàm số J(θ) - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.7. Hình dạng đồ thị hàm số J(θ) (Trang 27)
Hình 2.8. Hàm số J(θ) giảm dần xuống cực tiểu gần nhất - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.8. Hàm số J(θ) giảm dần xuống cực tiểu gần nhất (Trang 28)
Hình 2.9. Sự ảnh hưởng của α đến tốc độ học của thuật toán - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.9. Sự ảnh hưởng của α đến tốc độ học của thuật toán (Trang 28)
Hình 2.11. Cấu trúc LeNet5 - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.11. Cấu trúc LeNet5 (Trang 30)
Hình 2.10. Kiến trúcmạng nơ-ron tích chập (CNNs) - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.10. Kiến trúcmạng nơ-ron tích chập (CNNs) (Trang 30)
Hình 2.12. Cấu trúc Inception - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.12. Cấu trúc Inception (Trang 31)
Hình 2.14. Các bộ lọc dùng cho phép tích chập - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.14. Các bộ lọc dùng cho phép tích chập (Trang 33)
Hình 2.15. Ảnh sau khi qua tầng conv - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.15. Ảnh sau khi qua tầng conv (Trang 34)
Hình 2.18. Luồng dữ liệu đồ thị - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.18. Luồng dữ liệu đồ thị (Trang 38)
Hình 2.22. Cấu hình mạng tích chập - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 2.22. Cấu hình mạng tích chập (Trang 45)
Hình 3.4. Sơ đồ quá trình nhận dạng - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 3.4. Sơ đồ quá trình nhận dạng (Trang 49)
Hình 4.1. Lưu đồ chương trình - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.1. Lưu đồ chương trình (Trang 51)
Hình 4.3. Cửa sổ cmd - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.3. Cửa sổ cmd (Trang 53)
Hình 4.4. Giao diện Python Shell - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.4. Giao diện Python Shell (Trang 54)
Hình 4.6. Môi trường lập trình Jupyter Notebook - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.6. Môi trường lập trình Jupyter Notebook (Trang 55)
Hình 4.8. Chỉnh sửa tên file - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.8. Chỉnh sửa tên file (Trang 56)
Hình 4.7. Tạo project và chọn nhân - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.7. Tạo project và chọn nhân (Trang 56)
Hình 4.10. Hướng dẫn sử dụng Jupyter Notebook - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.10. Hướng dẫn sử dụng Jupyter Notebook (Trang 57)
Hình 4.11. Hướng dẫn sử dụng Jupyter Notebook - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.11. Hướng dẫn sử dụng Jupyter Notebook (Trang 57)
Hình 4.12. Hướng dẫn sử dụng Jupyter Notebook - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.12. Hướng dẫn sử dụng Jupyter Notebook (Trang 58)
Hình 4.14. Giao diện PyCharm - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.14. Giao diện PyCharm (Trang 59)
Hình 4.17. Tạo file Python - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 4.17. Tạo file Python (Trang 60)
Một vài hình ảnh từ nhiều camera điện thoại khác nhau và kết quả nhận dạng: •Nhận dạng đồ vật:  - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
t vài hình ảnh từ nhiều camera điện thoại khác nhau và kết quả nhận dạng: •Nhận dạng đồ vật: (Trang 63)
Hình 5.1. Ảnh chụp đồ vật từ điện thoại - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 5.1. Ảnh chụp đồ vật từ điện thoại (Trang 63)
Hình 5.3. Hình chụp quả từ điện thoại - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 5.3. Hình chụp quả từ điện thoại (Trang 65)
Bảng 5.3. Kết quả nhận dạng hình 5.3 - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Bảng 5.3. Kết quả nhận dạng hình 5.3 (Trang 65)
Hình 5.4. a) Hình từ mô hình được huấn luyện sẵn. b) Hình chụp từ điện thoại  - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 5.4. a) Hình từ mô hình được huấn luyện sẵn. b) Hình chụp từ điện thoại (Trang 66)
Hình 5.5. Hình chụp bằng camera điện thoại ở nhiều góc độ - Tìm hiểu và ứng dụng tensoflow cho bài toán nhận dạng
Hình 5.5. Hình chụp bằng camera điện thoại ở nhiều góc độ (Trang 68)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w