1. Trang chủ
  2. » Luận Văn - Báo Cáo

THIẾT kế ASIC CHO bộ lọc FIR CÔNG SUẤT THẤP

65 33 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 65
Dung lượng 9,12 MB

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

Nội dung

1.2.1 Yêu cầu về thiết kế ASIC cho bộ lọc FIR Tối ưu số Area của Cell Tối ưu chi phí sản xuất Tối ưu công suất 1.2.2 Các biểu cảm cảm xúc trên mặt người Con người có nhiều cách để truyền

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

THIẾT KẾ ASIC CHO BỘ LỌC FIR

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM

Cán bộ hướng dẫn khoa học :

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1 :

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2 :

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1

2

3

4

5

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA …………

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập

-Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

I TÊN ĐỀ TÀI: THIẾT KẾ ASIC CHO BỘ LỌC FIR CÔNG SUẤT THẤP

II NHIỆM VỤ VÀ NỘI DUNG: Thiết kế được một con chip có thể tối ưu được

công suất với thuật toán bộ lọc FIR bằng trễ và diện tích của CMOS trong vi mạchsố

III NGÀY GIAO NHIỆM VỤ : 15/01/2018

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

V.CÁN BỘ HƯỚNG DẪN: TS Trương Quang Vinh

Trang 4

LỜI CÁM ƠN

Được sự phân công của nhà trường, khoa điện – điện tử và sự đồng ý của giáoviên hướng dẫn TS Trương Quang Vinh, em đã thực hiện luận văn thạc sĩ chuyên

ngành kỹ thuật điện tử với đề tài “Thiết kế ASIC cho bộ lọc FIR công suất thấp

trên công nghệ CMOS 90NM” Qua trang viết này em xin gửi lời cảm ơn tới những

người đã giúp đỡ em trong thời gian học tập, nghiên cứu luận văn thời gian qua

Trước hết, em xin gửi lời cảm ơn chân thành đến TS Trương Quang Vinh Thầy

là người đã trực tiếp hướng dẫn và tận tình chỉ bảo trong công việc nghiên cứu, tìmkiếm tài liệu, xử lý và phân tích vấn đề của luận văn Nhờ thầy mà em có thể hoànthành luận văn cao học

Ngoài ra, em cũng xin chân thành cảm ơn quý đồng nghiệp, gia đình và bạn bècùng khóa đã luôn động viên và hỗ trợ em trong suốt quá trình nghiên cứu và hoànthành luận văn này

TÁC GIẢ

TÓM TẮT

Trang 5

Tiếng Việt:

Ngày nay các thiết bị di động như điện thoại di động, máy tính xách tay, hay cácthiết bị y sinh cầm tay ngày càng trở nên phổ biến và một phần tất yếu trong cuộcsống Bô lọc FIR , hay bộ lọc đáp ứng xung hữu hạn (Finite Impulse Response) được

sử dụng rất rộng rãi trong các thiết bị y sinh, xử lý tiếng nói, xử lý hình ảnh, và xử lývideo Bộ lọc này, sử dụng các nguồn năng lượng để xử lý các quá trình trên rất nhiềunăng lượng Không chỉ có độ ổn định điện áp và dòng điện mà nó còn có hiệu suất lọcnăng lượng cao Sự lọc năng lượng từ bộ lọc FIR cấp điệc cho một thiết bị hoạt độngvới điện áp thấp hơn thương thông qua các nguồn điện của tín hiệu, tín hiệu hình ảnh,tín hiệu video, tín hiệu tiếng nói Việc sử dụng bộ lọc FIR nhằm tạo ra nhiều mức điện

áp khác nhau phục vụ cho các khối chức năng mạch, thiết bị và các ứng dụng trongcùng một hệ thống Yêu cầu bộ lọc đáp ứng xung hữu hạn, hiệu năng sau khi được lọc

có độ gợn năng lượng tháp để đảm bảo cho hệ thống ổn định theo ngõ ra cho phép.Luận văn này trình bày các vấn đề liên quan đến bộ lọc FIR giảm hiệu suất tínhiệu bằng phương pháp xung, thực hiện trên mô phỏng hoạt động vi mạch trên nêntảng công nghệ 180nm Trong báo cáo này,

Luận văn đã thực hiện thành công mô phỏng bộ lọc FIR trên cấp độ dạng khốitrên Matlab và mô phỏng vi mạch bằng phần mềm Synopsis sử dụng mã bù bộ cộngCIA 4bit, và bô cộng Ripple 16bit Kết mô phỏng so sánh hai bộ công này là 70%nhanh hơn so với bộ cộng Ripple 16 bit và tiêu thụ năng lượng hiều hơn 24,7% Môphỏng thực hiện trên thư viện vi mạch 180nm CMOS TSMC 1p6M cho hiệu suất 80%

có khả năng

Trang 6

In the 21st century, the fast growing demand of portable and filter electronicsystem has driven the efforts to reduce power consumption or to improve theefficiency of these electronic equipments Regulator are essential for most electricallypowered system which include the prevalent filter equipments and singal processing.Regulators are required to reduce the power varriation from DSP system,

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quảtrong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây.Tất cả những tham khảo và kế thừa cho việc thực hiện luận văn này đã được cảm ơn

và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc và được phép côngbố

TP.HCM, ngày tháng năm

Học viên thực hiện

Trang 8

Mục lục

1 Tổng quan: 8

1.1 Giới thiệu về đề tài 8

1.2 Đặc trưng của mặt người 8

1.2.1 Yêu cầu về nhận dạng khuôn mặt 9

1.2.2 Các biểu cảm cảm xúc trên mặt người 9

1.3 Mục tiêu, nhiệm vụ và phạm vi đề tài 10

1.3.1 Mục tiêu của đề tài 10

1.3.2 Nhiệm vụ của đề tài 10

1.3.3 Phạm vi của đề tài 10

1.4 Tổ chức luận văn 10

2 Tình hình nghiên cứu trong và ngoài nước 11

3 Mạng nơ-ron tích chập (Convolution neural network - CNN) 18

3.1 Tổng quan 18

3.2 Mạng nơ-ron tích chập 19

4 Thiết kế hệ thống và mô phỏng thử nghiệm 24

4.1 Kiến trúc hệ thống nhận diện cảm xúc khuôn mặt sử dụng mạng nơ-ron tích chập (CNN) 24 4.2 Dữ liệu sử dụng cho huấn luyện mạng (Training dataset) 32

4.3 Huấn luyện cho kiến trúc mạng nơ-ron tích chập 34

4.4 Thiết kế giao diện chương trình (GUI) 45

4.5 Mô phỏng và thực nghiệm 46

5 Hướng phát triển đề tài 57

6 Tài liệu tham khảo 58

Trang 9

1 Tổng quan

1.1 Giới thiệu về đề tài

Trong những năm gần đây, cùng với sự phát triển nhanh của vi mạch số, nóđược thiết kế bởi hai quá trình, một là thiết kế Front – End và hai là thiết kế Back– End Cả hai qua trình thiết kế nhà thiết kế ngày càng dòi hỏi công suất thấp vàthông lượng cao của mức tiêu thụ năng lượng Những các nhà thiết kế vi mạch số

sử dụng rất nhiều toán học cần thiết để thực hiện trong qua trình thiết kế để thuđược vi mạch có công suất thấp, và độ trễ rất ít

Luận văn này xin trình bày một quá trình thiết kế vi mạch số của bộ lọc đápứng xung hữu hạn (FIR) Quà trình thiết kế thực hiện các chức năng chính: Thiết

kế bộ lọc đáp ứng xung hữu hạn, dựa vào toán học của bộ lọc đáp ứng xung hữuhạn thiết kế một vi mạch số bằng phần mềm synopsis Vi mạch đã thiết kế có thểtối ưu được mức tiệu thụ năng lượng

Cốt lõi của phương pháp tiếp cận của luận văn đưa ra được dựa trên việc:

 Lựa chọn bài toán học để thiết kế

 Sử dụng phương pháp bộ lọc đáp ứng xung hữu hạn (FIR)

 Thiết kế bộ lọc đáp ứng xung hữu hạn công suật thấp

1.2 Đặc trưng của quá trình thiết kế ASIC cho bộ lọc FIR

Vi mạch số là trọng tâm chính trong mối quan hệ giao tiếp trong mọi lĩnh vực,

đó vai trò quan trọng trong việc thiết kế vi mach số có thể tối ưu được công suốt

và tối tiểu được chi phí sản suất cũng như chi phí tiêu thụ năng lượng của ngườidùng Để thiết kế được điều đó, chúng ta thiết kế vi mạch cho một bộ lọc đáp ứngxung hữu hạn (FIR) Điều này khá là rõ nét, Bộ lọc đáp ứng xung hữu hạn là một

bộ lọc tính toán nhanh và tối tiểu con CMOS cho qua trình thiết kế ASIC Nhũngbài toán đã xử trong bộ lọc FIR này gồm có:

1 Cửa số

2 Mẫu tần số

3 Lặp tối ưu

Trang 10

1.2.1 Yêu cầu về thiết kế ASIC cho bộ lọc FIR

Tối ưu số Area của Cell

Tối ưu chi phí sản xuất

Tối ưu công suất

1.2.2 Các biểu cảm cảm xúc trên mặt người

Con người có nhiều cách để truyền đạt thông tin với nhau: ngôn ngữ, cử chỉ,lời nói… Biểu hiện cảm xúc trên khuôn mặt cũng là một cách để truyền đạt thôngtin, nó có thể biểu hiện một nhận định của con người trước sự vật, hiện tường.Hình bên dưới là 7 cảm xúc cơ bản cử con người mà đề tài này đề cập tới – nhậndạng, phân biệt được 7 loại cảm xúc cơ bản của con người Tiến sĩ Paul Ekman đãtrình bày 7 cảm xúc cơ bản và được con người ở mọi nền văn hóa thể hiện giốngnhau trong Emotions Revealed (2003)

1.3 Mục tiêu, nhiệm vụ và phạm vi đề tài

1.3.1 Mục tiêu của đề tài

Nhận diện cảm xúc trên khuôn mặt người là một trong những đề tài thiết thực vàcần thiết đối với sự phát triển giao tiếp người-máy hiện nay, vì vậy:

 Cảm xúc trên khuôn mặt người được máy nhận biết một cách tự động

 Thông tin về cảm xúc có thể được ghi nhận để làm dữ liệu cho những phântích về thị trường, mức độ hài lòng của khách hàng

 Từ việc phân tích dữ liệu trên, một vài hành động có thể được đưa ra nhằmnâng cao chất lượng dịch vụ hoặc điều chỉnh chất lượng sản phẩm

1.3.2 Nhiệm vụ của đề tài

 Phát hiện và trích xuất khuôn mặt từ ảnh / video thời gian thực

 Tính toán và ước lượng cảm xúc trên khuôn mặt ở khung ảnh hiện tại

 Trích xuất cảm xúc trên khuôn mặt và hiển thị kết quả

Trang 11

Luận văn sẽ đi qua các mục chính sau:

- Xem qua các nghiên cứu trong và ngoài nước về đề tài của luận văn

- Phân tích thuật toán nhận dạng cảm xúc khuôn mặt (Mạng nơ-ron tích chập)

- Mô phỏng và thử nghiệm

- Kết luận và thảo luận về các cải tiến có thể trong tương lai

Trang 12

2 Tình hình nghiên cứu trong và ngoài nước

Nhận diện cảm xúc trên khuôn mặt người đang là một lĩnh vực được nghiêncứu nhiều trong lĩnh vực thị giác máy tính Trong phần luận văn này, em xin đưa

ra một số lĩnh vực nghiên cứu, một số phương pháp tiếp cận đặc trưng để ngườiđọc có thể kham thảo

Năm 2010, tác giả Đinh Xuân Nhất trong khóa luận tốt nghiệp Đại học Công

nghệ - Đại học Quốc gia Hà Nội, “Nghiên cứu các thuật toán nhận dạng cảm

xúc trên khuôn mặt 2D”, đã đưa các so sánh 3 thuật toán nhận dạng cảm xúc

trên khuôn mặt gồm 5 cảm xúc cơ bản: vui, buồn, ghê tởm, giận dữ và tự nhiên.Tác giả đã chỉ ra một số thuật toán học và áp dụng thuật toán này cho bài toánphân lớp để nhận dạng cảm xúc

Dữ liệu đầu vào mà đề tài sử dụng bao gồm có 75 ảnh khuôn mặt mẫu, độphân giải 600x800 điểm ảnh, tất cả đều là ảnh khuôn mặt một người và có độ sángđồng đều nhau Tập ảnh này chỉ có 5 cảm xúc chính là: vui, buồn, ghê tởm, giận

dữ và bình thường Trong 75 ảnh khuôn mặt mẫu, 40 ảnh bất kỳ chọn làm dữ liệuhuấn luyện cho mạng, còn 35 ảnh làm dữ liệu kiểm tra

Những kết quả chính mà khóa luận đạt được:

 Giới thiệu chi tiết về phương pháp trích chọn đặc trưng (PCA) và Mạngnoron nhiều tầng truyền thẳng, đồng thời giới thiệu sơ lược về một giảithuật phân lớp khác là cây quyết định

 Áp dụng các giải thuật này cho bài toán nhận dạng cảm xúc

Những vấn đề mà khóa luận chưa giải quyết được:

 Xây dựng tập huấn luyện lớn để đạt kết quả chính xác hơn

 Xây dựng một chương trình hoàn chỉnh có giao diện tương tác với người

sử dụng

Trang 13

Kết quả nhận dạng thu được chưa cao, phân bố không đồng đều giữa các cảmxúc với nhau:

Năm 2010, Trong bài báo “Facial Expression Recognition Using AAM

Algorithm”, các tác giả Nguyen Duc Thanh, Nguyen Huu Tan, Nguyen Tan Luy

đến từ Bộ môn Tự động, Đại học Bách Khoa TP.HCM đã đề xuất 2 phương pháp,trong đó 1 là AAM kết hợp mạng thần kinh cho kết quả chính xác hơn nhưng tốc

độ xử lý chậm, và phương pháp kia là AAM kết hợp tương quan điểm với tốc độđặc biệt nhanh

Năm 2011, Tại Hội nghị Quốc tế về Công nghệ tiên tiến áp dụng cho Truyền

thông, với bài báo “Toward a Vietnamese facial expression recognition system

for human-robot interaction” các tác giả Le Thi-Lan và Dong Van-Thai đến từ

Đại học Bách Khoa Hà Nội đã trình bày kết quả nghiên cứu về nhận dạng cảmxúc khuôn mặt người Việt Nam, trong đó bao gồm việc xây dựng database, pháthiện khuôn mặt và nhận dạng biểu hiện khuôn mặt Đóng góp chính trong bài báo

là database biểu hiện khuôn mặt của người Việt Nam, và kết quả sơ bộ về pháthiện và nhận dạng biểu hiện cảm xúc trên khuôn mặt

Trang 14

Kết quả phát hiện khuôn mặt với độ chính xác là 83% với hình ảnh nhiềukhuôn mặt và 94% với hình ảnh một khuôn mặt.

Hình 2.1: Các thành phần cơ bản của khuôn mặt

Một nghiên cứu Liyuan Zhen và Shifeng Zhu, “Convolutional Neural Networkfor Facial Expression Recognition” chỉ ra kết quả triển khai của một số kiến trúc của mạng nơ ron tích chập mà nhóm đã thực hiện Tuy nhiên kết quả đạt được chưa cao

 Đối với kiến trúc nơ ron tích chập tiêu chuẩn: 5 × 5 Conv(ReLU) → 2 × 2Max-Pooling → Fully-Connected(ReLU) → Softmax, kết quả đạt được chỉ

ở 48%

 Với kiến trúc CNN 6 lớp, độ chính xác ở mức 52.72%

 Đối với kiến trúc học sâu hơn (Depper CNN): 3 × 3 Conv(ReLU) - 2 × 2Max-Pooling with dropout rate of 0.25 → 3 × 3 Conv(ReLU) - 2 × 2 Max-Pooling with dropout rate of 0.25 → 3 × 3 Conv(ReLU) - 2 × 2 Max-Pooling with dropout rate of 0.25 → Fully-Connected(ReLU) with dropoutrate of 0.5 → Softmax., độ chính xác được cải thiện ở mức 61.19%

Trang 15

Tác giả sử dụng dữ liệu từ cuộc thi nhận dạng cảm xúc khuôn mặt Kaggle(Kaggle facial expression challenge) bao gồm 28709 ảnh và cho việc huấn luyện

và 3589 ảnh cho việc kiểm tra, các ảnh này là ảnh khuôn mặt người có kích thước48x48 pixels và được định dạng ở ảnh xám

Hình 2.2: Cảm xúc trên khuôn mặt và thống kê dữ liệu trong Kaggle Arushi Raghuvanshi và Vivek Choksi đã giới thiệu đề tài “Facial Expression Recognition with Convolutional Neural Networks” sử dụng mạng

nơ ron tích chập 5 lớp để giải quyết bài toán nhận diện cảm xúc khuôn mặt trênảnh Baseline classifier cũng được sử dụng trong đề tài này để đưa ra kết quả tínhtoán về cảm xúc khuôn mặt

Nhóm sử dụng dữ liệu từ cuộc thi nhận dạng cảm xúc khuôn mặt Kaggle(Kaggle facial expression challenge) để triển khai và kiểm tra hệ thống, kết quảtriển khai của 5 mô hình dựa trên mạng nơ-ron tích chập không cao

Trang 16

Năm 2017, các tác giả Minh-An Quinn, Grant Sivesind, Guilherme Reis

của đại học Stanford đã giới thiệu nhiều mô hình nhân dạng cảm xúc khuôn mặt

trong đề tài: “Real-time Emotion Recognition From Facial Expressions”, thực

hiện trên một số tập dữ liệu, trong đó có FER2013 Trong đó có mô hình mạngnơ-ron tích chập với 10 lớp và độ chính xác đạt được 66,67% trên tập FER2013

Độ chính xác tập trung chủ yếu ở các cảm xúc vui, ngạc nhiên, giận và tự nhiên.Kết quả này hoàn toàn trùng khớp khi thực hiện giải thuật này trên video thời gianthực

Hình 2.3 Ma trận cảm xúc của đề tài (1)

Trang 17

Bảng 2.4: So sánh độ chính xác của một số phương pháp (4)

Ngày 20 tháng 10 năm 2017, các tác giả Octavio Arriaga, Matias

Valdenegro-Toro, Paul Plöger giới thiệu một nghiên cứu mang tên “Real-time Convolutional

Neural Networks for Emotion and Gender Classification” Nghiên cứu này

thực hiện các công việc: nhận diện khuôn mặt, nhận diện cảm xúc kết hợp với giớitính xử lý thời gian thực

Trang 18

Hình 2.4 Mô hình được giới thiệu trong đề tài

Hình 2.5 Ma trận cảm xúc của đề tài (2)

Trang 19

Hệ thống được thiết kế với các lớp cơ bản của một hệ thống mạng nơ-ron tíchchập, tuy nhiên, không sử dụng lớp kết nối đầy đủ trong mạng Hệ thống đượchuấn luyện với IMDB dataset với 460,723 hình ảnh RGB về giới tính, độ chínhxác đạt được là 96%, 35,887 hình ảnh từ FER2013 với độ chính xác khoản 66% Trên đây là một số nghiên cứu trong và ngoài nước liên quan đến việc nhậndạng cảm xúc khuôn mặt, mỗi nghiên cứu đều có ưu điểm và nhược điểm riêng,hầu hết các nghiên cứu đều dùng hình ảnh để làm tập huấn luyện và tập kiểm tra

độ chính xác của hệ thống Phần tiếp theo của đề tài sẽ là phần phân tích thuậttoán nhận dạng cảm xúc khuôn mặt sử dụng mạng nơ-ron tích chập (CNN)

3 Mạng nơ-ron tích chập (Convolution neural network - CNN)

3.1 Tổng quan

Mạng nơ-ron truyền thẳng nhiều lớp là một kỹ thuật có sức mạnh và tầm ảnhhưởng lớn trong máy học (machine learning) với việc được huấn luyện dựa như làmột hàm không tuyến tính để giải quyết một số bài toán thực tế Tuy nhiên việclựa chọn thủ công thuật toán trích xuất đặt trưng và thuật toán phân loại thườngdựa theo kinh nghiệm, dẫn đến bài toán không tối ưu Do đó, hướng giải quyết tốtnhất là đưa mạng nơ-ron lên dữ liệu thô ban đầu và để cho thuật toán huấn luyệntìm ra đặt trưng tối ưu bằng cách thay đổi các trọng số tương ứng

Vấn đề của cách tiếp cận này là số chiều của dữ liệu đầu vào tương đối lớnđồng thời là một lượng lớn liên kết giữa các phần tử ẩn và lớp ngõ vào (inputlayer) Thông thường con số này đạt khoảng 10,000 hoặc lớn hơn tùy vào từngứng dụng cụ thể Số lượng lớn mẫu dùng để huấn luyện có thể tương đối nhỏ sovới kích thước mẫu sẽ dẫn đến mạng nơ-ron truyền thẳng sẽ trở nên phức tạp, vàcũng dẫn đến hiện tượng quá khớp dữ liệu

Một điểm không thuận lợi của nữa mạng nơ-ron truyền thẳng đó là dữ liệu ngõvào phải có kích thước không đổi và các mẫu ngõ vào phải được định dạng đúngtheo một yêu cầu nào đó của lớp ngõ vào, điều này khó thực hiện được trong thực

tế

Trang 20

Mạng nơ-ron tích chập (CNN) không những sẽ giải quyết các vấn đề đã nêu ởtrên mà còn cho có thể áp dụng giải quyết các bài toán nhận dạng phức tạp vớihiệu xuất cao

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

Mạng nơ-ron tích chập (Convolutional Neural Network – CNN) là một trongnhững mô hình máy học (machine learning) tiên tiến giúp cho chúng ta xây dựngđược những hệ thống thông minh với độ chính xác cao CNN trong nhận dạngcảm xúc khuôn mặt cũng là một trong những giải pháp trong thị giác máy tính,giao tiếp người – máy trong xu thế hiện nay

Cấu trúc cơ bản của một mạng nơ-ron tích chập (CNN) thường bao gồm cáclớp: Lớp tích chập (Convolution layer), lớp Pooling (Pooling layer), lớp hiệuchỉnh tuyến tính (Rectified linear units layer - ReLU) và lớp kết nối đầy đủ (Fullyconnected layer) Độ phức tạp của kiến trúc mạng tích chập còn tùy từng ứngdụng cụ thể mà người thiết kế có thể lựa chọn một hoặc nhiều lớp để xây dựng.Dưới đây là phần giới thiệu các lớp cơ bản có trong một mạng nơ-ron tích chập

và các thành phần chính trong hệ thống của đề tài

a Lớp tích chập (Convoluation layer)

Lớp này sẽ sử dụng một bộ các bộ lọc có kích thước nhỏ so với ảnh áp vào mộtvùng trong ảnh và tiến hành tính tích chập giữa bộ filter và giá trị điểm ảnh trongvùng cục bộ đó Bộ lọc sẽ lần lượt được dịch chuyển theo một giá trị bước trượt

và quét toàn bộ ảnh Các thông số của bộ lọc này sẽ được khởi tạo một cách ngẫunhiên và sẽ được cập nhật dần trong quá trình huấn luyện cho mạng

Giả sử f k là bộ lọc có kích thước n m được áp dụng trên ngõ vào x n m� là số

lượng liên kết ngõ vào mà mỗi nơ-ron có Phép tích chập giữa f k và ngõ vào x cho

ta kết quả như sau:

Để có được nhiều đặt trưng đại diện từ dữ liệu đầu vào, ta có thể áp dụng nhiều

bộ lọc f k với k��lên ngõ vào x Bộ lọc fk được thực hiện bằng cách chia sẻ trọng

Trang 21

số của các nơ-ron lân cận Điều này có ý nghĩa tích cực cho việc cập nhật cáctrọng số thấp, trái ngược với mạng nơ-ron truyền thẳng, và các trọng số có sự ràngbuộc với nhau.

Hình 3.1: Tích chập giữa ngõ vào và cửa sổ chập

b Lớp Pooling (Pooling layer)

Mục tiêu của lớp pooling là làm giảm kích thước của ảnh nhưng vẫn giữ cácthông tin quan trọng nhất trong đó Sử dụng một hàm kích hoạt tương ứng vớimục đích của người thiết kế để 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) vàAveragePooling (lấy giá trị trung bình) Khác với lớp tích chập, lớp Poolingkhông tính tích chập mà tiến hành lấy mẫu (subsampling)

Max pooling là phương pháp giảm kích thước mẫu với hàm kích hoạt là

Maximun được áp dụng trên ngõ vào x Giả sử m là kích thước của cửa sổ trượt,

kết quả thu được khi áp dụng hàm kích hoạt Maximun như sau:

Trang 22

Hình 3.2: Hoạt động của max-pooling

c Lớp hiệu chỉnh tuyến tính (Rectified Linear Unit – ReLU layer)

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íchchập thành giá trị 0 mà vẫn giữ được sự tin cậy toán học của mạng Ý nghĩa củalớp này này chính là tạo nên tính phi tuyến cho mô hình Ngoài ra, nó còn có tácdụng giảm lượng tính toán cho các lớp tiếp theo, và ngăn chặn việc triệt tiêu sai sốgradient vì gradient là một hàm tuyến tính hoặc là 0

Tương tự như 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 việc xây dựng đa tầng đa lớp trở nên vô nghĩa Có rấtnhiề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ạtsigmoid, tanh, … nhưng hàm R(x) = max(0,x) dễ tính toán nhanh mà vẫn hiệu quả

Hình 3.3: Hoạt động của lớp hiệu chuẩn tuyến tính

Trang 23

Lớp kết nối đầy đủ (Fully connected layer)

Lớp kết nối đầy đủ được biết đến như là mạng nơ-ron nhiều tần, các nơ-ron

trong mạng kết nối tất cả các nơ-ron của lớp trước Giả sử ngõ vào x có kích thước k và l là số lượng nỏ-ron có trong lớp kết nối đầy đủ này Kết quả trong ma

sự phát triển của mạng nơ-ron

Drop-out là một kỹ thuật dùng để loại bỏ một số thành phần cùng với kết nối

Trang 24

mức của mạng, nghĩa là tạm thời loại bỏ một vài thành phần cùng với các kết nốicủa nó ra khỏi mạng Các phần tử được loại bỏ trong mạng được lựa chọn mộtcách ngẫu nhiên

Hình 3.4: Kỹ thuật drop-out trong CNN

f Chia sẻ trọng số

Chia sẻ trọng số là một trong những nguyên tắt quan trọng trong CNN, có nghĩa rất lớp làm giảm các tham số cần được cập nhật trong quá trình huấn luyệncho mạng Hơn nữa, chia sẻ trọng số còn giúp việc huấn luyện cho mạng trở nênhiệu quả hơn, đặt biệt là trường hợp một số kiến trúc cục bộ xuất hiện ở khônggian ngõ vào

Hình 3.5: Kỹ thuật chia sẽ trọng số trong CNN

Trang 25

4 Thiết kế hệ thống và mô phỏng thử nghiệm

4.1 Kiến trúc hệ thống nhận diện cảm xúc khuôn mặt sử dụng mạng nơ-ron tích chập (CNN)

Một kiến trúc mạng có được hiệu quả tốt cho quá trình nhận dạng được hìnhthành từ nhiều yếu tố, trong đó việc lựa chọn số lượng các lớp cơ bản cũng nhưcác thống số hay hàm kích hoạt cho từng lớp chiếm vài trò quan trọng, sao cho nóđảm bảo được các yêu cầu nhận dạng được đề ra

Trong đề tài này, hệ thống được thiết kế bao gồm 2 phần chính: Phần trích xuấtđặt trưng và phân phân loại cảm xúc

Trang 26

Phần trích xuất đặt trưng bao gồm 4 lớp tích chập và 2 lớp pooling, cụ thểnhư sau:

- Data: là dữ liệu ngõ vào của hệ thống Dữ liệu huấn luyện cho mạng là tập

dữ liệu gồm các hình ảnh được định dạng ở mức xám, có kích thước48x48 pixels Kích thước này cũng là kích thước ngõ vào của mạng khithực thi hệ thống Ảnh từ video / webcam sẽ được chuyển đổi kênh màu

và định dạng lại sao cho phù hợp với kích thước đã khai báo

- Conv_1: là lớp tích chập đầu tiên của hệ thống, sử dụng 96 bộ lọc vớicùng kích thước 3x3 pixels Ở lớp đầu tiên này, không có bộ lọc được ápdụng

- Pooling_1 là lớp pooling ngay sau lớp conv_1, với kích thước cửa sổ là3x3 pixels

- Conv_2a là lớp tích chập thứ 2 sử dụng 108 bộ lọc có kích thước 2x2pixels Đi cùng với nó là hàm kích hoạt ReLU

- Pooling_2 là lớp pooling thứ 2 trong mạng, tuy nhiên kích thước bộ lọcchỉ là 2x2 pixels, và mỗi lần trượt của cửa sổ là 1 pixel

- Tiếp theo là 2 lớp tích chập liên tiếp với kích thước tương ứng là 208 bộlọc 2x2 và 64 bộ lọc 2x2 Cả 2 lớp tích chập này đều sử dụng hàm ReLU

để làm hàm kích hoạt

- Tiếp theo là phần phân loại cảm xúc, bao gồm thành phần chính là 3 lớpfully connected với kích thước khác nhau, tương ứng là 512, 256 và 7 Kỹthuật drop out được áp dụng trên 2 lớp đầu tiên với tỉ lệ 0.3, tức là có 30%nơ-ron của 2 lớp này bị tắt trong quá trình huấn luyện, nhằm hạn chế hiệntượng quá khớp (overfitting) vốn là một nhược điểm lớn trong các mạngnơ-ron nhân tạo Hàm mất mát softmax cross-entropy được sử dụng đểphản hồi thông tin trong quá trình huấn luyện mạng

Trang 27

- Tương ứng với kiến trúc đã nêu ở trên, kích thước ngõ ra của hệ thống chotừng lớp được liệt kê ở bảng bên dưới.

Layer Kích thước ngõ ra

Dữ liệu ngõ vào 48x48Convolution 1 96x48x48

Bảng 4.1: Kích thước ngõ ra của các lớp trong mạng

a Input layer

Những phương thức trong module tf.layer cho việc tạo ra lớp convolutional vàlớp pooling đối với dữ liệu ảnh 2 chiều chấp nhận ngõ vào là một tensor có shape

là [batch_size, image_width, image_height, channels] Trong đó:

- batch_size: số lượng mẫu được dùng khi thực hiện thuật toán gradient descentcho việc tối ưu trong quá trình huấn luyện

- image_width: chiều rộng của bức ảnh

- image_height: chiều dài của bức ảnh

- channels: là số kênh màu của ảnh Nếu ảnh trắng đen thì channels = 1, nếu là

Trang 28

Trong dữ liệu huấn luyện FER2013, một mẫu là một hình ảnh trắng đen(channels = 1) được có kích thước 48x48 pixels, do đó chọn shape cho input layer

là [batch_size; 48, 48, 1] và đồng thời input layer phải resize các mảng 1 chiều vềmảng 2 chiều kích thước 48x48 tương ứng với kích thước không gian của ảnh

b Lớp tích chập

Trong lớp tích chập đầu tiên, 95 bộ lọc 3x3 được sử dụng để áp dụng cho inputlayer, với activation function là hàm ReLU Phương thức con2d() trong modulelayer được sử dụng để tạo lớp tích chập đầu tiên, được đặt tên Conv2d_1

conv_1 = conv_2d

(self.network, 96, 3, strides=1, bias=True, padding=padding, activation= ‘relu’,

name='Conv2d_1')Tham số inputs tiếp nhận đầu vào của lớp conv_1 và chỉ nhận tensor hợp lệ nếu

có shape là [batch_size, image_width, image_height, channels] Ở đây conv1layer được kết nối với input_layer có shape [batch_size; 48, 48, 1]

Tham số filters chỉ ra số lượng bộ lọc được sử dụng, ở đây là 96 Tham số tiếptheo chỉ ra kích thước của mỗi bộ lọc, ở đây sử dụng [3,3]

Tham số strides chỉ mức độ trượt của cửa số tích chập trên ảnh ngõ vào, ở đâymỗi lần trượt của cửa sổ tích chập là 1 pixel (strides=1)

Tham số padding nhận 2 giá trị hoặc “same” hoặc “valid” Nếu giá trị truyềnvào là “valid”, input được giữ nguyên để xử lý và dẫn đến các feature map ở ngõ

ra của lớp conv có kích thước nhỏ hơn đầu vào Nếu giá trị truyền vào là “same”,TensorFlow sẽ thêm các giá trị 0 vào input sao cho khi tính tích chập hoàn thành

sẽ cho ra feature map có cùng kích thước với input

Trang 29

Tham số activation chỉ ra hàm activation function nào sẽ được áp dụng sau khitính tích chập để cho đầu ra cuối cùng, ở đây activation function là hàm ReLUNgõ ra của lớp conv_1 sẽ có shape là [batch_size, 84, 84, 96]: có cùng chiềudài và chiều rộng với input nhưng số channels ở ngõ ra cho mỗi input là 96.

c Lớp pooling

Lớp pooling thứ nhất sẽ kết nối với lớp conv_1 vừa được tạo ra Phương thứcmax_pooling2d() được sử dụng để xây dựng lớp pooling sử dụng thuật toánmax_pooling với bộ lọc 3x3, bước trượt bằng 2

maxpool_1 = max_pool_2d(conv_1, 3,

strides=2, padding=padding, name='MaxPool_1')

Tham số inputs chỉ ra ngõ vào của pool_1 với shape hợp lệ là [batch_size,image_width, image_height, channels] Ở đây, input là ngõ ra của conv1 có shape[batch_size; 48; 48; 96]

Tham số pool_size chỉ ra kích thước của bộ lọc lớp pooling, ở đây kích thướcđược sử dụng là 3x3

Tham số strides chỉ ra bước trượt của bộ lọc, ở đây được cài đặt bằng 2, nghĩa

là các vùng nhỏ được chia ra mỗi lần trượt phân cách với nhau bởi 2 pixel theochiều ngang và 2 pixel theo chiều dọc Và vì kích thước bộ lọc là 2x2 nên mỗivùng nhỏ sẽ chỉ áp dụng bộ lọc 1 lần (không có pixel chung giữa các vùng trongmỗi lần lọc)

Ngõ ra của pool_1 có shape là [batch_size, 24, 24, 96]: mỗi feature map đãđược giảm đi 50% kích thước

d Lớp tích chập thứ 2, pooling thứ 2, lớp tích chập thứ 3 và thứ 4

Cũng với phương thức conv2d() và max_pooling2d(), 4 lớp tiếp theo thuộc

Trang 30

- conv_2a = relu(conv_2d(maxpool_1, 108, 2, strides=1, padding=padding,name='Conv_2a’))

- maxpool_2a = batch_normalization(max_pool_2d(conv_2a, 2, strides=1,padding=padding, name='MaxPool_2a'))

- conv_2b = relu(conv_2d(maxpool_2a, 208, 2, strides=1, padding=padding,name='Conv_2b'))

- conv_2c = relu(conv_2d(conv_2b, 64, 2, strides=1, padding=padding,name='Conv_2c'))

e Lớp kết nối đầy đủ 1 (FC layer)

Lớp FC (với 512 nơ-ron và ReLU activation) được thêm vào mạng CNN đểthực hiện nhiệm vụ phân loại dựa trên các đặc trưng đã được trích xuất bởi lớpconvolutional và pooling ở phía trước Một điểm lưu ý ở đây là các feature map ởngõ ra của lớp pooling thứ 2 có shape là [batch_size; 24; 24; 64], tương ứng 1mẫu ở ngõ ra của lớp conv_2c được trích xuất thành 64 ma trận 2 chiều kíchthước 24x24 Trước khi đưa vào lớp FC, 64 ma trận 2 chiều (tương ứng với 1 đặctrưng) được phương thức flatten chuyển thành vector 1 chiều có 36864 phần tử,cũng chính là 36864 nơ-ron

net = flatten(conv_2c, name='Net')

final_1 = fully_connected (drop_net_1, 512, activation = 'relu')

Trang 31

drop_net_2 = dropout (final_1, 0.5)

Ở lớp fully connected thứ nhất, 512 nơ-ron được sử dụng tham gia vào quátrình phân loại của mạng, drop out cũng được áp dụng ở lớp này với tỉ lệ là 50% Ngõ ra của lớp FC thứ nhất này (sau khi áp dụng drop out) là một tensor cóshape [batch_size, 512]

f Lớp kết nối đầy đủ 2 (FC layer)

final_2 = fully_connected (drop_net_2, 256, activation = 'relu')

g Lớp kết nối đầy đủ 3 (FC layer)

Lớp này là lớp cuối cùng trong mạng CNN là lớp sẽ trả về một vector hàngchứa các xác suất dự đoán của mô hình Lớp FC cuối cùng gồm 7 nơ-ron tươngứng với 7 cảm xúc mà hệ thống xử lý nhận dạng và activation function là softmax.Loss = fully_connected(drop_net_3,7,activation='softmax', name='Total_loss')Ngõ ra cuối cùng của mạng CNN là tensor có shape [batch_size, 7]

h Cấu hình hồi quy (regression)

Ngõ ra của lớp kết nối đầy đủ cuối cùng được đăng ký hồi quy với Tflearn hổtrợ phương thức đăng ký hồi quy cùng với việc định nghĩa tối ưu hàm mất mát(loss fuction) và tốc độ học của mạng Ở đây, hàm mất mát là hàm

Trang 32

self.network = tflearn.regression

(Loss, optimizer = 'Adam' , loss='categorical_crossentropy', learning_rate=0.0001)

i Load dữ liệu cho huấn huyện và validation

Để huấn luyện mô hình bằng TensorFlow, dữ liệu toàn bộ tập training set vàtoàn bộ tập testing set được lưu trong 4 mảng có kích thước lớn Trong đó imagedata và labels data sẽ được lưu riêng trong 2 mảng riêng biệt nhưng vẫn đảm bảo

có thể trích xuất thành một cặp dữ liệu khi huấn luyện

Giá trị các pixel được lưu ở kiểu float32, giá trị các labels được lưu ở kiểu int32 Cụ thể là 4 mảng data_labels_fer2013, data_set_fer2013,

test_labels_fer2013, test_set_fer2013

j Cấu hình cho mode TRAIN

Sau khi định nghĩa hàm mất mát (loss function) cho mô hình là hàm entropy thì cần phải chọn thuật toán để tối ưu hóa (optimize) giá trị của hàm mấtmát trong quá trình training

cross-Thuật toán tối ưu hàm mất mát được sử dụng nhiều nhất trong MachineLearning và đặc biệt trong Deep Learning là Gradien Descent [10] Có 2 thông sốquan trọng cần phải cấu hình cho thuật toán Gradient Descent là điểm khởi đầu vàtốc độ học (learning rate) Với điểm khởi đầu tốt (gần điểm nghiệm mà tại đó hàmmất mất được tối ưu), mô hình sẽ hội tụ nhanh và kết thúc quá trình huấn luyệnsớm Tuy nhiên điểm bắt đầu có tính chất như vậy rất khó tìm, và nếu thuật toántốt như Gradient Descent thì có thể chọn ngẫu nhiên bất kì một điểm làm nghiệmkhởi đầu

Learning rate là thông số rất quan trọng, quyết định đến khả năng hội tụ và tốc

độ hội tụ của mô hình Mặc dù vậy nhưng không có một công thức cụ thể để lựachọn learning rate Việc lựa chọn giá trị này phụ thuộc vào từng bài toán và phảichạy thử nghiệm mô hình cho một vài giá trị để chọn được giá trị tốt nhất

Ngày đăng: 08/06/2019, 08:33

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