lOMoARcPSD| 58833082
□□&□□
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
~~~~~~*~~~~~~
BÀI BÁO CÁO
ĐỀ TÀI
TÌM HIỂU VỀ
HỌC SÂU
(
DEEP LEARNING
)
Sinh viên thực hiện
:
Mã sinh viên
Hà Huy
Dũng
*
:
21124
4250
Vũ Đức Khải
:
211213620
Lớ
p
:
IT
5
-
N06
Giáo viên hướng dẫn
:
Nguyễn Đức Dư
Hà Nội
-
2024
lOMoARcPSD| 58833082
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC
GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ
THÔNG TIN
~~~~~~*~~~~~~
BÀI BÁO CÁO
ĐỀ TÀI
TÌM HIỂU VỀ HỌC SÂU (DEEP LEARNING)
Sinh viên thực hiện : Mã sinh viên
Hà Huy Dũng* : 211244250
Vũ Đức Khải : 211213620
Lớp : IT5-N06
Giáo viên hướng dẫn : Nguyễn Đức Dư
lOMoARcPSD| 58833082
Hà Nội - 2024
MỤC LỤC Lời nói
đầu ...............................................................................................
. 1 CHƯƠNG 1: Giới
thiệu ......................................................................... 2
I. Định nghĩa Deep learning ...........................................................................2
I. Lịch sử ......................................................................................................2
III. Một số ứng dụng ........................................................................................7
CHƯƠNG 2: Nguyên lý cơ
bản ............................................................. 7
I. Cách thức deep learning hoạt động................................................................7
1. Phương pháp deep
learning ......................................................................................... 8 II. Cơ sở lý
thuyết ............................................................................................9 1. Khái
niệm về Neural Networks (Mạng nơ-ron)....................................................... 9 2.
Các loại mô hình Deep Learning phổ biến: ...............................................................
10
2.1. Convolutional Neural Networks (CNNs) - Mạng nơ-ron tích chập ..................
10 2.2. Recurrent Neural Networks (RNN) - Mạng nơ-ron hồi
quy ............................. 16 2.3. Generative Adversarial Networks (GANs) - Mạng
-ron đối đầu sinh........ 20
3.Thuật toán và phương
pháp........................................................................................... 22
3.1 Các thuật toán
DL ......................................................................................................... 22 3.3. Phương
pháp tối ưu hóa trong Deep Learning: .................................................... 30
CHƯƠNG3: Ứng
dụng ......................................................................... 36
I. Speech to text using deep learning................................................................ 37
1.1. Nguyên lí hoạt
động...................................................................................................... 37 1.2. Chuyển
lOMoARcPSD| 58833082
âm thanh thành số......................................................................................... 38 1.3.
Tiền xử lý dữ liệu mẫu âm thanh ..............................................................................
40 1.4 Nhận diện ký tự từ đoạn âm
ngắn............................................................................. 42
CHƯƠNG 4: Thách thức và hướng phát triển ................................
43
I.Thách thức hiện tại và Cơ hội trong tương lai ............................................... 43
1. Ưu và nhược điểm của Deep
Learning......................................................................... 43 Chương 5: Tổng
kết ............................................................................... 45
lOMoARcPSD| 58833082
1
Lời nói đầu
Deep Learning, một nhánh của trí tuệ nhân tạo, đã đang trở thành một trong
những lĩnh vực nghiên cứu ứng dụng quan trọng nhất trong công nghệ thông tin hiện
nay. Với khả năng xử lý và phân tích dữ liệu phức tạp, Deep Learning đã mở ra nhiều
hội mới cho các lĩnh vực như thị giác máy, xử lý ngôn ngữ tự nhiên, y học, và nhiều lĩnh
vực khác.
Trong báo cáo này, chúng tôi sẽ trình bày một cách chi tiết về Deep Learning, từ các nguyên
lý cơ bản đến các ứng dụng thực tế, cũng như những thách thức và cơ hội mà lĩnh vực này
mang lại. Chúng tôi ng sẽ thảo luận vtương lai của Deep Learning tầm quan trọng
của nó trong việc giải quyết các vấn đề xã hội và khoa học hiện nay.
Nhóm chúng em gồm hai thành viên, và sau đây là phân công nhiệm vụ trong nhóm:
Sinh viên thực hiện
Mã sinh viên
Công việc
Hà Huy Dũng*
211244250
Viết báo cáo và bài trình chiếu ppt
Tìm hiểu về cơ sở lý thuyết
Vũ Đức Khải
211213620
Tìm hiểu về nguyên lý cơ bản, ứng dụng
Báo cáo này nhằm mục đích cung cấp một cái nhìn tổng quan về Deep Learning,
giúp người đọc hiểu rõ hơn về lĩnh vực này và những ứng dụng của nó trong đời sống và
công việc. Chúng tôi hy vọng rằng báo cáo này sẽ mang lại những thông tin hữu ích và
đóng góp tích cực vào việc nghiên cứu và phát triển Deep Learning trong tương lai.
Xin chân thành cảm ơn!
CHƯƠNG 1: Giới thiệu
I. Định nghĩa Deep learning
Deep learning được xem một lĩnh vực thuộc machine learning trí tuệ nhân
tạo (Al), ở đó các máy tính sẽ bắt chước con người để học và cải thiện chính nó thông
qua các thuật toán. Deep learning là một yếu tố quan trọng của data science. Nó giúp cho
những nhà data science thu thập, phân tích giải thích một ợng dữ liệu khổng lồ đơn
giản, nhanh chóng và dễ dàng.
Hiểu một cách đơn giản thì deep learning là cách để tự động hóa phân tích dự đoán. Trong
khi những thuật toán của machine learning tuyến tính thì các thuật toán của deep learning
lại xếp chồng lên nhau theo thứ tự từ đơn giản đến phức tạp, trừu tượng.
lOMoARcPSD| 58833082
2
Bạn hãy tưởng tượng một đứa trẻ mới bắt đầu học ngôn ngữ từ đầu tiên học “chó”.
Nó sẽ chỉ vào bất cứ một đồ vật nói “chó”. Lúc này phụ huynh sẽ đáp trả “đúng” hoặc
“không”. Sau khi nhận được phản hồi, đứa trẻ tiếp tục chỉ vào các đồ vật khác dán nhãn
cho chúng. Bộ não của trẻ sẽ làm rõ sự trừu tượng, phức tạp của khái niệm về “chó” bằng
cách xây dựng một hệ thống phân cấp mà mức độ trừu tượng ở cấp sau được tạo ra từ kiến
thức thu được ở cấp trước.
I. Lịch sử
Deep Learning (Học sâu) đã phát triển góp phần tạo nên một ớc tiến lớn
trong các ngành nh vực kinh doanh hiện nay. Học sâu một nhánh của học máy
triển khai các thuật toán để xử lý dữ liệu và bắt chước quá trình tư duy và thậm chí phát
triển các tính năng trừu tượng.
Deep Learning sử dụng các lớp thuật toán để xử lý dữ liệu, hiểu giọng nói của con người
nhận dạng các đối tượng một cách trực quan. Trong học sâu, thông tin được chuyển
qua từng lớp đầu ra của lớp trước đóng vai trò là đầu vào cho lớp tiếp theo. Lớp đầu
tiên trong mạng được gọi là lớp đầu vào (input layer), trong khi lớp cuối cùng là lớp đầu
ra (output layer), các lớp ở giữa được gọi là các lớp ẩn (hidden layer).
Một điểm đặc biệt khác của học sâu khả năng trích xuất đặc trưng, sử dụng một thuật
toán để tự động xây dựng các đặc trưng có ý nghĩa cho việc học tập, đào tạo và hiểu biết
trong dữ liệu.
lOMoARcPSD| 58833082
3
Lịch sử phát triển của Deep Learning trong nhiều năm
Thế giới hiện đang chứng kiến một cuộc cách mạng AI toàn cầu trên tất cả các lĩnh vực.
Và một trong những yếu tố thúc đẩy cuộc cách mạng AI này là Học sâu. Nhờ những
khổng lồ như Google Facebook, Deep Learning giờ đây đã trở thành một thuật ngữ
phổ biến mọi người thể nghĩ rằng đó là một khám phá gần đây. Nhưng bạn có thể
ngạc nhiên khi biết rằng lịch sử của học sâu có từ những năm 1940.
Thật vậy, học sâu không xuất hiện trong một sớm một chiều, đúng hơn nó đã phát triển từ
từ và dần dần trong hơn bảy thập kỷ. Bài viết này nhằm giúp bạn tìm hiểu lịch sử của Deep
Learning để điểm lại những khám phá quan trọng các nhà nghiên cứu đã thực hiện
tất cả những bước đi nhỏ này đã đóng góp như thế nào vào kỷ nguyên hiện đại của sự
bùng nổ Học sâu.
Lịch sử của học sâu bắt đầu từ năm 1943 khi Warren McCulloch và Walter Pitts tạo ra một
mô hình máy tính dựa trên các mạng thần kinh mô phỏng hoạt động của não bộ con người.
Warren McCulloch Walter Pitts đã sử dụng sự kết hợp giữa toán học thuật toán để
bắt chước quá trình suy nghĩ. Mạng nơ-ron này khả năng rất hạn chế không
chế học hỏi. Tuy nhiên, nó sẽ đặt nền tảng cho mạng nơ-ron nhân tạo và Deep Learning.
Năm 1957, trong bài báo của mình Perceptron: A Perceiving and Recognition
Automaton” (Perceptron: Thuật toán để học có giám sát các phân loại nhị phân),
Rosenblatt cho thấy diện mạo mới của mạng nơ-ron McCulloch-Pitts Perceptron
có khả năng học tập thực sự để tự phân loại dựa trên phép tính nhị phân. Điều này
truyền cảm hứng cho cuộc cách mạng trong nghiên cứu mạng -ron nông trong
nhiều năm sau, cho đến mùa đông AI đầu tiên.
Henry J. Kelley trong bài báo của mình, “Lý thuyết Gradient về các đường bay tối
ưu” cho thấy phiên bản đầu tiên của Back Propagation Model. hình của ông phù
lOMoARcPSD| 58833082
4
hợp với thuyết điều khiển, nhưng đặt nền tảng cho việc hoàn thiện thêm
hình và sẽ được sử dụng trong ANN trong những năm sau đó.
Năm 1962, ra đời Backpropagation With Chain Rule Thuật toán Lan truyền
ngược với quy tắc chuỗi (Quy tắc chuỗi một công thức biểu thị đạo hàm), Stuart
Dreyfus trong bài báo của mình, “Giải pháp số cho các phép tính biến phân”, (Phép
tính biến phân: là một ngành giải tích toán học sử dụng variations, là những thay
đổi nhỏ của hàm phiếm hàm, để tìm cực đại cực tiểu) cho thấy một thuật
toán Lan truyền ngược sử dụng quy tắc chuỗi đạo hàm đơn giản, thay vì lập trình
động mà trước đó đang sử dụng. Đây là một bước nhỏ khác giúp củng cố tương lai
của Deep Learning.
Năm 1965, khai sinh mạng Học sâu, Alexey Grigoryevich Ivakhnenko cùng với
Valentin Grigorʹevich Lapa, cho ra đời Hierarchical Representation of Neural
Network (biểu diễn phân cấp của mạng -ron) sử dụng chức năng kích hoạt đa
thức được đào tạo bằng Phương pháp xử dữ liệu nhóm (GMDH). Hiện
được coi Perceptron nhiều lớp đầu tiên Ivakhnenko thường được coi cha
đẻ của Deep Learning.
Năm 1969, Sự sụp đổ của Perceptron, Marvin Minsky Seymour Papert xuất
bản cuốn sách “Perceptrons” trong đó họ chỉ ra rằng Rosenblatt’s Perceptron
không thể giải quyết các chức năng phức tạp như XOR. Đối với các hàm
Perceptron như vậy nên được đặt trong nhiều lớp ẩn làm ảnh hưởng đến thuật toán
học Perceptron. Sự thất bại này khởi đầu một mùa đông của nghiên cứu mạng nơron.
Năm 1970, Seppo Linnainmaa công bố phương pháp chung để phân biệt tự động
cho Backpropagation ng dụng vào trong máy tính. Nghiên cứu về
Backpropagation hiện đã đi rất xa, nhưng nó sẽ không được thực hiện trong mạng
nơ-ron cho mãi tới thập kỷ sau.
Năm 1971, Alexey Grigoryevich Ivakhnenko tiếp tục nghiên cứu của mình về
Neural Network. Ông tạo ra mạng thần kinh sâu 8 lớp bằng cách sử dụng Group
Method of Data Handling (Phương pháp xử lý dữ liệu theo nhóm), viết tắt là
GMDH.
Năm 1980, mạng CNN ra đời, Kunihiko Fukushima đưa ra Neocognitron, kiến
trúc mạng nơ-ron phức hợp đầu tiên thể nhận ra các mẫu hình ảnh chẳng hạn
như các ký tự viết tay.
Năm 1982, ra đời Hopfield Networktiền thân của RNN, John Hopfield tạo ra
Mạng Hopfield, không khác ngoài một mạng -ron tuần hoàn. hoạt
động như một hệ thống bộ nhớ có thể định địa chỉ nội dung và sẽ là công cụ cho
các mô hình RNN tiếp theo.
Cùng năm này, đề xuất ứng dụng Back Propagation vào mạng ANN, Paul
Werbos, trên luận án bằng tiến của mình năm 1974, ông đề xuất việc sử dụng
Backpropagation để lan truyền lỗi trong quá trình đào tạo Mạng thần kinh. Kết quả
lOMoARcPSD| 58833082
5
từ luận án tiến sĩ của ông cuối cùng được cộng đồng nghiên cứu mạng nơ-ron được
áp dụng thực tế sau này.
Năm 1985, ra đời Boltzmann Machine, David H. Ackley, Geoffrey Hinton và
Terrence Sejnowski đã tạo ra Boltzmann Machine một Recurrent Neural
Network (Mạng nơ-ron lặp lại ngẫu nhiên). Mạng nơ-ron này chỉ có lớp đầu vào
và ẩn lớp nhưng không có lớp đầu ra.
Năm 1986, ra đời NetTalk ANN học giọng nói, Terry Sejnowski tạo ra NeTalk,
một mạng nơ-ron học cách phát âm văn bản tiếng Anh bằng cách hiển thị văn bản
dưới dạng đầu vào và khớp phiên âm để so sánh.
Cũng trong năm này, ng dụng Back Propagation, Geoffrey Hinton, Rumelhart
Williams trong bài o của họ “Learning Representations by back-propagating
errors Học biểu diễn bằng lỗi thuật toán Lan truyền ngược” cho thấy việc triển
khai thành công quá trình lan truyền ngược trong mạng nơ-ron. Nó đã mở ra những
cánh cổng cho việc đào tạo mạng nơ-ron sâu phức tạp một cách dễ dàng hơn, vốn
là trở ngại chính trong những nghiên cứu trước đây.
Vào thời điểm này, Máy Boltzmann bị hạn chế, Paul Smolensky đưa ra một bản
nâng cấp của Boltzmann Machine không kết nối nội bộ lớp trong đầu vào lớp
ẩn. Nó được gọi là Máy Boltzmann hạn chế (RBM). Nó đã trở nên phổ biến trong
nhiều năm tới, đặc biệt để xây dựng các Recommender System (Hệ thống đề
xuất).
Năm 1989, mạng CNN (Convolutional Neural Network Mạng tích chập) sử dụng
Backpropagation, Yann LeCun sử dụng phương pháp lan truyền ngược để huấn
luyện mạng nơ-ron phức hợp để nhận dạng các chữ số viết tay. Đây là một thời điểm
đột phá vì nó đặt nền tảng của tầm nhìn máy tính hiện đại sử dụng Deep Learning.
Cùng năm, Universal Approximators Theorem Định xấp xỉ phổ quát (Kết quả
thiết lập mật độ của một lớp hàm được tạo theo thuật toán trong một không gian
hàm quan tâm nhất định), George Cybenko cho ra đời phiên bản đầu tiên của mình
trong bài viết tên “Approximation by Superpositions of a Sigmoidal function”.
Ông chứng minh rằng bổ sung mạng -ron với một lớp ẩn chứa sợng -ron
hữu hạn thể gần đúng với bất kỳ hàm liên tục nào. giúp cho mạng Học sâu
trở nên đáng tin cậy hơn.
Năm 1991, vấn đề về Vanishing Gradient xuất hiện, Sepp Hochreiter xác định vấn
đề về Vanishing Gradient thể làm cho việc học của mạng nơron sâu trở nên cực
kỳ chậm gần như không thực tế. Vấn đề này sẽ tiếp tục gây khó khăn cho cộng
đồng học sâu trong nhiều năm tới.
Năm 1997, Cột mốc quan trọng của LSTM, Sepp Hochreiter và Jürgen
Schmidhuber xuất bản một bài báo quan trọng về “Long Short-Term Memory”
(LSTM). Nó là một loại kiến trúc mạng nơ-ron tuần hoàn đã tiếp tục cách mạng
hóa học sâu trong nhiều thập kỷ tới.
lOMoARcPSD| 58833082
6
Năm 2006, xuất hiện Deep Belief Network, Geoffrey Hinton, Ruslan
Salakhutdinov, Osindero và Teh xuất bản bài báo “A fast learning algorithm for
deep belief nets”, trong đó họ xếp chồng nhiều RBM lại với nhau thành từng lớp
và gọi chúng là Deep Belief Networks. Quá trình đào tạo hiệu quả hơn nhiều đối
với lượng dữ liệu lớn.
Năm 2008, bắt đầu GPU Revolution Cuộc cách mạng GPU, nhóm của Andrew
NG Stanford bắt đầu ủng hộ việc sử dụng GPU để đào tạo Mạng thần kinh sâu
nhằm tăng tốc thời gian đào tạo lên nhiều lần. Điều này thể mang lại tính thực
tiễn trong lĩnh vực Deep Learning để đào tạo về khối ợng dữ liệu khổng lmột
cách hiệu quả.
Năm 2009, khởi động ImageNet, tìm đdữ liệu được gắn nhãn luôn một thách
thức đối với cộng đồng Học sâu. Năm 2009, Fei-Fei Li, một giáo tại Stanford,
khởi chạy ImageNet, một sở dữ liệu gồm 14 triệu hình ảnh được dán nhãn.
sẽ tiêu chuẩn đánh giá cho các nhà nghiên cứu Deep Learning, những người s
tham gia các cuộc thi ImageNet (ILSVRC) hàng năm.
Năm 2011, Combat For Vanishing Gradient, Yoshua Bengio, Antoine Bordes,
Xavier Glorot trong bài báo của họ “Deep Sparse Rectifier Neural Networks” cho
thấy rằng chức năng kích hoạt ReLU th tránh được vấn đề về Vanishing
Gradient. Điều này nghĩa bây giờ, ngoài GPU, cộng đồng học sâu một
công cụ khác để giải quyết các vấn đề về thời gian đào tạo dài không thực tế
của mạng nơ-ron sâu.
Năm 2012, bùng nổ học sâu với AlexNet, một kiến trúc mạng -ron phức hợp
CNN sử dụng GPU do Alex Krizhevsky thiết kế, giành chiến thắng trong cuộc thi
phân loại hình ảnh của Imagenet với đchính xác 84%. Đó một bước nhảy vọt
vượt bậc so với độ chính xác 75% các hình trước đó đã đạt được. Chiến
thắng này tạo ra một sự bùng nổ học tập sâu mới trên toàn cầu.
Năm 2014, ra đời Neural Adversarial Generative (GAN), GAN được phát triển bởi
Ian Goodfellow. mở ra một hội ứng dụng hoàn toàn mới của học sâu trong
lOMoARcPSD| 58833082
7
thời trang, nghệ thuật, khoa học do khả năng tổng hợp dữ liệu giống như thật của
nó.
Năm 2016, hình AlphaGo, hình Học sâu tăng cường của Deepmind đánh
bại nhà vô địch của con người trong trò chơi cờ vây phức tạp. Tchơi phức tạp
hơn nhiều so với cờ vua, vậy kỳ tích này thu hút sự quan tâm của mọi người
nâng tầm Học sâu lên một cấp độ hoàn toàn mới.
Năm 2019, Giải thưởng Trio Win Turing, Yoshua Bengio, Geoffrey Hinton Yann
LeCun giành được Giải thưởng Turing 2018 vì những đóng góp to lớn của họ trong
những tiến bộ trong lĩnh vực học sâu và trí tuệ nhân tạo. Đây là một thời điểm quan
trọng đối với những người đã từng làm việc về mạng nơ-ron mà toàn bộ cộng đồng
nghiên cứu Máy học đã bỏ cuộc vào những năm 1970.
vậy, đằng sau sự tiến hóa này của Deep Learning, rất nhiều nhà nghiên cứu
học máy đã làm việc với quyết tâm cao độ ngay cả khi không ai tin rằng mạng nơron
có bất kỳ tương lai nào.
III. Một số ứng dụng
Các ví dụ về deep learning
Những hình của deep learning xử lý thông tin tương tự ncách bộ não con người hoạt
động. Hiện tại deep learning được áp dụng để thay thế cho nhiều nhiệm vụcon người
từng thực hiện. được sử dụng để nhận dạng hình ảnh, nhận dạng giọng nói xử
ngôn ngữ tự nhiên. Ngoài ra được ứng dụng để phân tích dữ liệu lớn tập trung vào các
lĩnh vực như chẩn đoán y tế, giao dịch thị trường chứng khoán, nhận dạng hình ảnh, bảo
mật mạng. Dưới đây là những lĩnh vực cụ thể mà deep learning đang được sử dụng:
Chatbots: hình deep learning được dùng cho chatbots để ơng tác với khách hàng
nhanh chóng, thuận tiện.
Text generation: Deep learning được dùng để tự động tạo văn bản mới phù hợp với
chính tả, ngữ pháp và phong cách của văn bản gốc.
Hàng không vũ trụ quân sự: Deep learning được dùng để phát hiện các đối tượng
vệ tinh, khu vực quan trọng, khu vực an toàn và không an toàn cho quân đội.
Tự động hóa trong công nghiệp: Deep learning mang đến sự an toàn cho người lao
động trong nhà máy, nhà kho bằng cách phát hiện kịp thời công nhân hoặc đối tượng
nào đó đến gần máy móc.
Adding color: Khi dùng deep learning màu sắc sẽ được thêm vào nh hoặc video đen
trắng tỉ mỉ, thẩm mỹ và nhanh gọn.
Y học: Những nhà khoa học đã đang áp dụng deep learning để phát hiện các tế bào
ung thư.
lOMoARcPSD| 58833082
8
Computer vision: Thị giác máy tính được cải thiện rõ rệt khi dùng deep learning. Mô
hình này cung cấp cho máy tính độ chính c cao để phát hiện, phân loại, khôi
phục hình ảnh.
CHƯƠNG 2: Nguyên lý cơ bản
I. Cách thức deep learning hoạt động
Các chương trình máy tính sử dụng deep learning ng trải qua quá trình tương tự
như những đứa trẻ mới tập i. Mỗi thuật toán trong hệ thống phân cấp sẽ áp dụng một
phép biến đổi phi tuyến tính cho đầu vào của nó và dùng những kiến thức mà nó học được
để tạo một mô hình thống kê làm đầu ra. Cách thức đó cứ lặp đi lặp lại liên tục cho tới khi
có được kết quả chính xác nhất.
Trở lại với dụ trên ta thể thấy đối với machine learning truyền thống lập trình viên
cần cho máy tính biết cụ thể thứ cần tìm để xác định hình nh chứa “chó” hay
không. Quá trình này tốn rất nhiều công sức sự thành công của máy tính phụ thuộc phần
lớn vào lập trình viên. Thế nhưng với deep learning máy tính sẽ tự phân tích tìm ra
kết quả mà không cần giám sát. Như vậy vừa tiết kiệm thời gian vừa đạt độ chính xác cao.
Sau khi gắn nhãn “chó” hoặc “không chó” cho mỗi hình ảnh thì lập trình viên sẽ cung cấp
toàn bộ số ảnh đó cho máy tính. Chương trình sẽ dùng dữ liệu nhận được để tạo bộ tính
năng cho “chó” và xây dựng mô hình dự đoán. Trong lần dự đoán đầu tiên máy tính có thể
hiểu trong bức nh những con vật nào 4 chân đuôi đều gắn nhãn “chó”. Sau đó
mô hình dự đoán lặp đi lặp lại và tăng mức độ phức tạp lên.
Những đứa trẻ mới tập nói phải mất vài tuần mới hiểu khái niệm về “con chó” nhận diện
được con vật này. Thế nhưng một chương trình máy tính sử dụng deep learning thì việc
phân tích, xác định chính xác hình ảnh chứa “chó” chỉ trong vòng vài giây.
Như vậy thể thấy deep learning thể tạo ra các hình dự đoán chính xác với số
lượng dữ liệu lớn gắn nhãn hoặc không gắn, cấu trúc hoặc không cấu trúc. Đó
chính là một thế mạnh để deep learning ngày càng được ứng dụng trong mọi lĩnh vực của
cuộc sống con người.
1. Phương pháp deep learning
Những mô hình deep learning được tạo ra bằng nhiều phương pháp khác nhau. thể
kể đến như Learning rate decay, Transfer learning, Training from scratch, Dropout.
Learning rate decay
Learning rate decay là một siêu tham số quan trọng nhất của quá trình huấn luyện. Đây
một phương pháp điều chỉnh learning rate qua mỗi ớc update các tham số của hình.
Tỷ lệ Learning rate quá cao sẽ dẫn tới quá trình huấn luyện không ổn định. Tỷ lệ Learning
lOMoARcPSD| 58833082
9
rate quá thấp lại khiến quá trình huấn luyện kéo dài tiềm ẩn những khó khăn. Transfer
learning
Transfer learning là một kĩ thuật chuyển giao tri thức giữa các mô hình. Tức là một mô
hình có khả năng tận dụng lại những tri thức được huấn luyện trước đó để thực hiện các
tác vụ mới với khả năng phân loại cụ thể hơn. Phương pháp này sẽ yêu cầu ít dữ liệu hơn
và giảm thời gian tính toán so với những phương pháp khác.
Training from scratch
Training from scratch yêu cầu các nhà phát triển cần thu thập một lượng dữ liệu lớn có
gắn nhãn. Bên cạnh đó cần phải thiết lập và định cấu hình cho mạng để nó có thể tìm hiểu
các tính năng và mô hình. Với các ứng dụng mới hay ứng dụng có danh mục đầu ra lớn rất
thích hợp với Training from scratch. Phương pháp này chưa phổ biến bởi quá trình huấn
luyện kéo dài hơn những phương pháp khác.
Dropout
Dropout là một phương pháp loại bỏ các nút mạng một cách ngẫu nhiên trong quá trình
huấn luyện. Bằng cách thức này đã giúp cải thiện hiệu suất của mạng nơ ron khi thực hiện
các nhiệm vụ học tập có giám sát như phân loại tài liệu, nhận dạng giọng nói, tính toán…
II. Cơ sở lý thuyết
1. Khái niệm về Neural Networks (Mạng nơ-ron)
Neural Network nhân tạo được phỏng theo bộ não con người. phân tích dữ liệu
phức tạp, hoàn thành các phép toán, tìm kiếm các mẫu sử dụng thông tin thu thập
được để đưa ra dự đoán phân loại. Cũng giống nbộ não con người, Neural
Network nhân tạo có một đơn vị chức năng cơ bản được gọi là -ron. Những nơron
này còn được gọi là các nút, truyền thông tin trong mạng.
(Hình 1)
lOMoARcPSD| 58833082
10
Một Neural Network cơ bản các nút được kết nối với nhau trong các lớp (layer) đầu vào
(input layer), layer ẩn (hidden layer) và layer đầu ra (output layer).
Layer đầu vào xử lí và phân tích thông tin trước khi gửi nó đến layer tiếp theo.
Layer ẩn nhận dữ liệu từ layer đầu vào hoặc các layer ẩn khác. Sau đó, layer ẩn tiếp tục
xử lí và phân tích dữ liệu bằng cách áp dụng một tập hợp các phép toán để chuyển đổi và
trích xuất những tính năng có liên quan từ dữ liệu đầu vào.
Layer đầu ra cung cấp thông tin cuối cùng bằng cách sử dụng các tính năng được trích
xuất. Layer này thể có một hoặc nhiều nút, tùy thuộc vào kiểu thu thập dữ liệu. Đối
với phân loại nhị phân, đầu ra sẽ có một nút hiển thị kết quả 1 hoặc 0.
2. Các loại mô hình Deep Learning phổ biến:
2.1. Convolutional Neural Networks (CNNs) - Mạng nơ-ron tích chập
CNN là gì? Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một
trong những mô hình Deep Learning tiên tiến. 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 như hiện nay.
CNN được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh. Để tìm
hiểu tại sao thuật toán này được sử dụng rộng rãi cho việc nhận dạng (detection),
chúng ta hãy cùng tìm hiểu về thuật toán này.
Tìm hiểu Convolutional là gì?
Là một cửa sổ trượt (Sliding Windows) trên một ma trận như mô tả hình dưới:
lOMoARcPSD| 58833082
11
Các convolutional layer các parameter(kernel) đã được học để tự điều chỉnh lấy ra những
thông tin chính xác nhất mà không cần chọn các feature.
Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa. Ma trận
có kích thước 5×5mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột.
Convolution hay tích chập là nhân từng phần tử trong ma trận 3. Sliding Window hay còn
gọi kernel, filter hoặc feature detect một ma trận kích thước nhỏ như trong dụ
trên là 3×3.
Convolution hay tích chập nhân từng phần tử bên trong ma trận 3×3 với ma trận bên
trái. Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma trận
Filter với ma trận ảnh 5×5 bên trái.
lOMoARcPSD| 58833082
12
Cấu trúc mạng CNN
Mạng CNN một tập hợp các lớp Convolution chồng lên nhau sử dụng các hàm
nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi một
lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp
tiếp theo.
Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn
cho các lớp tiếp theo. Trong mô hình mạng truyền ngược (feedforward neural network)
thì mỗi neural đầu vào (input node) cho mỗi neural đầu ra trong các lớp tiếp theo.
lOMoARcPSD| 58833082
13
hình này gọi mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn
(affine layer). Còn trong mô hình CNNs thì ngược lại. Các layer liên kết được với nhau
thông qua cơ chế convolution.
Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy ta có được các kết
nối cục bộ. Như vậy mỗi neuron ở lớp kế tiếp sinh ra từ kết quả của filter áp đặt lên một
vùng ảnh cục bộ của neuron trước đó.
Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trăm hàng nghìn
filter như vậy kết hợp kết quả của chúng lại. Ngoài ra một số layer khác như
pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các
thông tin nhiễu).
Trong quá trình huấn luyện mạng (traning) CNN tự động học các giá trị qua các lớp filter
dựa vào cách thức bạn thực hiện. dụ trong tác vụ phân lớp ảnh, CNNs sẽ cố gắng
tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes >
facial > high-level features. Layer cuối cùng được dùng để phân lớp ảnh.
Trong hình CNN 2 khía cạnh cần quan tâm tính bất biến (Location Invariance)
tính kết hợp (Compositionality). Với cùng một đối tượng, nếu đối tượng này được
chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật
toán sẽ bị ảnh hưởng đáng kể.
Pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyển (translation), phép quay
(rotation) và phép co giãn (scaling). Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông
tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter.
Đó do tại sao CNNs cho ra hình với độ chính xác rất cao. Cũng giống như cách
con người nhận biết các vật thể trong tự nhiên.
lOMoARcPSD| 58833082
14
Mạng CNN sử dụng 3 ý tưởng cơ bản:
các trường tiếp nhận cục bộ (local receptive field) trọng số chia sẻ
(shared weights)
tổng hợp (pooling).
Trường tiếp nhận cục bộ (local receptive field)
Đầu vào của mạng CNN là một ảnh. Ví dụ như ảnh có kích thước 28×28 thì tương ứng
đầu vào là một ma trận có 28×28 và giá trị mỗi điểm ảnh là một ô trong ma trận. Trong
mô hình mạng ANN truyền thống thì chúng ta sẽ kết nối các neuron đầu vào vào tầng ảnh.
Tuy nhiên trong CNN chúng ta không làm như vậy chúng ta chỉ kết nối trong một vùng
nhỏ của các neuron đầu vào như một filter kích thước 5 tương ứng (28- 5 + 1) 24
điểm ảnh đầu vào. Mỗi một kết nối sẽ học một trọng số và mỗi neuron ẩn sẽ học một bias.
Mỗi một vùng 5×5 đấy gọi là một trường tiếp nhận cục bộ.
Một cách tổng quan, ta có thể tóm tắt các bước tạo ra 1 hidden layer bằng các cách sau:
lOMoARcPSD| 58833082
15
B1: Tạo ra neuron ẩn đầu tiên trong lớp ẩn 1
B2: Dịch filter qua bên phải một cột sẽ tạo được neuron ẩn thứ 2.
với bài toán nhận dạng ảnh người ta thường gọi ma trận lớp đầu vàofeature map, trọng
số xác định các đặc trương là shared weight và độ lệch xác định một feature map là shared
bias. Như vậy đơn giản nhất là qua các bước trên chúng ta chỉ có 1 feature map. Tuy nhiên
trong nhận dạng ảnh chúng ta cần nhiều hơn một feature map.
lOMoARcPSD| 58833082
16
Như vậy, local receptive field thích hợp cho việc phân tách dữ liệu ảnh, giúp chọn ra những
vùng ảnh có giá trị nhất cho việc đánh giá phân lớp.
Trọng số chia sẻ (shared weight and bias)
Đầu tiên, các trọng số cho mỗi filter (kernel) phải giống nhau. Tất cả các nơ-ron trong lớp
ẩn đầu sẽ phát hiện chính xác feature tương tự chỉ các vị trí khác nhau trong hình ảnh đầu
vào. Chúng ta gọi việc map từ input layer sang hidden layer một feature map. Vậy mối
quan hệ giữa số lượng Feature map với số lượng tham số là gì?
Tóm lại, một convolutional layer bao gồm các feature map khác nhau. Mỗi một feature
map giúp detect một vài feature trong bức ảnh. Lợi ích lớn nhất của trọng số chia sẻ
giảm tối đa số lượng tham số trong mạng CNN.
Lớp tổng hợp (pooling layer)
Lớp pooling thường được sử dụng ngay sau lớp convulational để đơn giản hóa thông tin
đầu ra để giảm bớt số lượng neuron.
Thủ tục pooling phổ biến là max-pooling, thủ tục này chọn giá trị lớn nhất trong vùng đầu
vào 2×2.

Preview text:

lOMoAR cPSD| 58833082
□□&□□
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN ~~~~~~*~~~~~~ BÀI BÁO CÁO
ĐỀ TÀI TÌM HIỂU VỀ HỌC SÂU
( DEEP LEARNING )
Sinh viên thực hiện : Mã sinh viên
Hà Huy Dũng * :
21124 4250
Vũ Đức Khải :
211213620
Lớ p :
IT 5 - N06
Giáo viên hướng dẫn
: Nguyễn Đức Dư
Hà Nội - 2024 lOMoAR cPSD| 58833082
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC
GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN ~~~~~~*~~~~~~ BÀI BÁO CÁO ĐỀ TÀI
TÌM HIỂU VỀ HỌC SÂU (DEEP LEARNING)
Sinh viên thực hiện : Mã sinh viên Hà Huy Dũng* : 211244250
Vũ Đức Khải : 211213620 Lớp : IT5-N06
Giáo viên hướng dẫn :
Nguyễn Đức Dư lOMoAR cPSD| 58833082 Hà Nội - 2024 MỤC LỤC Lời nói
đầu ...............................................................................................
. 1 CHƯƠNG 1: Giới
thiệu ......................................................................... 2
I. Định nghĩa Deep learning ...........................................................................2
I. Lịch sử ......................................................................................................2
III. Một số ứng dụng ........................................................................................7
CHƯƠNG 2: Nguyên lý cơ
bản ............................................................. 7
I. Cách thức deep learning hoạt động................................................................7
1. Phương pháp deep
learning ......................................................................................... 8 II. Cơ sở lý
thuyết ............................................................................................9 1. Khái
niệm về Neural Networks (Mạng nơ-ron)....................................................... 9 2.
Các loại mô hình Deep Learning phổ biến: ............................................................... 10
2.1. Convolutional Neural Networks (CNNs) - Mạng nơ-ron tích chập ..................
10 2.2. Recurrent Neural Networks (RNN) - Mạng nơ-ron hồi
quy ............................. 16
2.3. Generative Adversarial Networks (GANs) - Mạng
nơ-ron đối đầu sinh........ 20

3.Thuật toán và phương
pháp........................................................................................... 22 3.1 Các thuật toán
DL ......................................................................................................... 22 3.3. Phương
pháp tối ưu hóa trong Deep Learning: .................................................... 30
CHƯƠNG3: Ứng
dụng ......................................................................... 36
I. Speech to text using deep learning................................................................ 37
1.1. Nguyên lí hoạt
động...................................................................................................... 37 1.2. Chuyển lOMoAR cPSD| 58833082
âm thanh thành số......................................................................................... 38 1.3.
Tiền xử lý dữ liệu mẫu âm thanh ..............................................................................
40
1.4 Nhận diện ký tự từ đoạn âm
ngắn............................................................................. 42

CHƯƠNG 4: Thách thức và hướng phát triển ................................ 43
I.Thách thức hiện tại và Cơ hội trong tương lai ............................................... 43
1. Ưu và nhược điểm của Deep
Learning......................................................................... 43 Chương 5: Tổng
kết ............................................................................... 45
lOMoAR cPSD| 58833082 1 Lời nói đầu
Deep Learning, một nhánh của trí tuệ nhân tạo, đã và đang trở thành một trong
những lĩnh vực nghiên cứu và ứng dụng quan trọng nhất trong công nghệ thông tin hiện
nay. Với khả năng xử lý và phân tích dữ liệu phức tạp, Deep Learning đã mở ra nhiều cơ
hội mới cho các lĩnh vực như thị giác máy, xử lý ngôn ngữ tự nhiên, y học, và nhiều lĩnh vực khác.
Trong báo cáo này, chúng tôi sẽ trình bày một cách chi tiết về Deep Learning, từ các nguyên
lý cơ bản đến các ứng dụng thực tế, cũng như những thách thức và cơ hội mà lĩnh vực này
mang lại. Chúng tôi cũng sẽ thảo luận về tương lai của Deep Learning và tầm quan trọng
của nó trong việc giải quyết các vấn đề xã hội và khoa học hiện nay.
Nhóm chúng em gồm hai thành viên, và sau đây là phân công nhiệm vụ trong nhóm:
Sinh viên thực hiện Mã sinh viên Công việc
Viết báo cáo và bài trình chiếu ppt Hà Huy Dũng* 211244250
Tìm hiểu về cơ sở lý thuyết Vũ Đức Khải 211213620
Tìm hiểu về nguyên lý cơ bản, ứng dụng
Báo cáo này nhằm mục đích cung cấp một cái nhìn tổng quan về Deep Learning,
giúp người đọc hiểu rõ hơn về lĩnh vực này và những ứng dụng của nó trong đời sống và
công việc. Chúng tôi hy vọng rằng báo cáo này sẽ mang lại những thông tin hữu ích và
đóng góp tích cực vào việc nghiên cứu và phát triển Deep Learning trong tương lai.
Xin chân thành cảm ơn!
CHƯƠNG 1: Giới thiệu
I. Định nghĩa Deep learning
Deep learning được xem là một lĩnh vực thuộc machine learning và trí tuệ nhân
tạo (Al), ở đó các máy tính sẽ bắt chước con người để học và cải thiện chính nó thông
qua các thuật toán
. Deep learning là một yếu tố quan trọng của data science. Nó giúp cho
những nhà data science thu thập, phân tích và giải thích một lượng dữ liệu khổng lồ đơn
giản, nhanh chóng và dễ dàng.
Hiểu một cách đơn giản thì deep learning là cách để tự động hóa phân tích dự đoán. Trong
khi những thuật toán của machine learning là tuyến tính thì các thuật toán của deep learning
lại xếp chồng lên nhau theo thứ tự từ đơn giản đến phức tạp, trừu tượng. lOMoAR cPSD| 58833082 2
Bạn hãy tưởng tượng một đứa trẻ mới bắt đầu học ngôn ngữ và từ đầu tiên nó học là “chó”.
Nó sẽ chỉ vào bất cứ một đồ vật và nói “chó”. Lúc này phụ huynh sẽ đáp trả “đúng” hoặc
“không”. Sau khi nhận được phản hồi, đứa trẻ tiếp tục chỉ vào các đồ vật khác và dán nhãn
cho chúng. Bộ não của trẻ sẽ làm rõ sự trừu tượng, phức tạp của khái niệm về “chó” bằng
cách xây dựng một hệ thống phân cấp mà mức độ trừu tượng ở cấp sau được tạo ra từ kiến
thức thu được ở cấp trước. I. Lịch sử
Deep Learning (Học sâu) đã phát triển và góp phần tạo nên một bước tiến lớn
trong các ngành và lĩnh vực kinh doanh hiện nay. Học sâu là một nhánh của học máy
triển khai các thuật toán để xử lý dữ liệu và bắt chước quá trình tư duy và thậm chí phát
triển các tính năng trừu tượng.
Deep Learning sử dụng các lớp thuật toán để xử lý dữ liệu, hiểu giọng nói của con người
và nhận dạng các đối tượng một cách trực quan. Trong học sâu, thông tin được chuyển
qua từng lớp và đầu ra của lớp trước đóng vai trò là đầu vào cho lớp tiếp theo. Lớp đầu
tiên trong mạng được gọi là lớp đầu vào (input layer), trong khi lớp cuối cùng là lớp đầu
ra (output layer), các lớp ở giữa được gọi là các lớp ẩn (hidden layer).
Một điểm đặc biệt khác của học sâu là khả năng trích xuất đặc trưng, sử dụng một thuật
toán để tự động xây dựng các đặc trưng có ý nghĩa cho việc học tập, đào tạo và hiểu biết trong dữ liệu. lOMoAR cPSD| 58833082 3
Lịch sử phát triển của Deep Learning trong nhiều năm
Thế giới hiện đang chứng kiến một cuộc cách mạng AI toàn cầu trên tất cả các lĩnh vực.
Và một trong những yếu tố thúc đẩy cuộc cách mạng AI này là Học sâu. Nhờ những gã
khổng lồ như Google và Facebook, Deep Learning giờ đây đã trở thành một thuật ngữ
phổ biến và mọi người có thể nghĩ rằng đó là một khám phá gần đây. Nhưng bạn có thể
ngạc nhiên khi biết rằng lịch sử của học sâu có từ những năm 1940.
Thật vậy, học sâu không xuất hiện trong một sớm một chiều, đúng hơn nó đã phát triển từ
từ và dần dần trong hơn bảy thập kỷ. Bài viết này nhằm giúp bạn tìm hiểu lịch sử của Deep
Learning để điểm lại những khám phá quan trọng mà các nhà nghiên cứu đã thực hiện và
tất cả những bước đi nhỏ bé này đã đóng góp như thế nào vào kỷ nguyên hiện đại của sự bùng nổ Học sâu.
Lịch sử của học sâu bắt đầu từ năm 1943 khi Warren McCulloch và Walter Pitts tạo ra một
mô hình máy tính dựa trên các mạng thần kinh mô phỏng hoạt động của não bộ con người.
Warren McCulloch và Walter Pitts đã sử dụng sự kết hợp giữa toán học và thuật toán để
bắt chước quá trình suy nghĩ. Mạng nơ-ron này có khả năng rất hạn chế và không có cơ
chế học hỏi. Tuy nhiên, nó sẽ đặt nền tảng cho mạng nơ-ron nhân tạo và Deep Learning.
Năm 1957, trong bài báo của mình “Perceptron: A Perceiving and Recognition
Automaton” (Perceptron: Thuật toán để học có giám sát các phân loại nhị phân),
Rosenblatt cho thấy diện mạo mới của mạng nơ-ron McCulloch-Pitts – Perceptron
có khả năng học tập thực sự để tự phân loại dựa trên phép tính nhị phân. Điều này
truyền cảm hứng cho cuộc cách mạng trong nghiên cứu mạng nơ-ron nông trong
nhiều năm sau, cho đến mùa đông AI đầu tiên.
Henry J. Kelley trong bài báo của mình, “Lý thuyết Gradient về các đường bay tối
ưu” cho thấy phiên bản đầu tiên của Back Propagation Model. Mô hình của ông phù lOMoAR cPSD| 58833082 4
hợp với Lý thuyết điều khiển, nhưng nó đặt nền tảng cho việc hoàn thiện thêm mô
hình và sẽ được sử dụng trong ANN trong những năm sau đó.
Năm 1962, ra đời Backpropagation With Chain Rule – Thuật toán Lan truyền
ngược với quy tắc chuỗi (Quy tắc chuỗi là một công thức biểu thị đạo hàm), Stuart
Dreyfus trong bài báo của mình, “Giải pháp số cho các phép tính biến phân”, (Phép
tính biến phân: là một ngành giải tích toán học sử dụng variations, là những thay
đổi nhỏ của hàm và phiếm hàm, để tìm cực đại và cực tiểu
) cho thấy một thuật
toán Lan truyền ngược sử dụng quy tắc chuỗi đạo hàm đơn giản, thay vì lập trình
động mà trước đó đang sử dụng. Đây là một bước nhỏ khác giúp củng cố tương lai của Deep Learning.
Năm 1965, khai sinh mạng Học sâu, Alexey Grigoryevich Ivakhnenko cùng với
Valentin Grigorʹevich Lapa, cho ra đời Hierarchical Representation of Neural
Network (
biểu diễn phân cấp của mạng nơ-ron) sử dụng chức năng kích hoạt đa
thức và được đào tạo bằng Phương pháp xử lý dữ liệu nhóm (GMDH). Hiện nó
được coi là Perceptron nhiều lớp đầu tiên và Ivakhnenko thường được coi là cha đẻ của Deep Learning.
Năm 1969, Sự sụp đổ của Perceptron, Marvin Minsky và Seymour Papert xuất
bản cuốn sách “Perceptrons” trong đó họ chỉ ra rằng Rosenblatt’s Perceptron
không thể giải quyết các chức năng phức tạp như XOR. Đối với các hàm
Perceptron như vậy nên được đặt trong nhiều lớp ẩn làm ảnh hưởng đến thuật toán
học Perceptron. Sự thất bại này khởi đầu một mùa đông của nghiên cứu mạng nơron.
Năm 1970, Seppo Linnainmaa công bố phương pháp chung để phân biệt tự động
cho Backpropagation và ứng dụng nó vào trong mã máy tính. Nghiên cứu về
Backpropagation hiện đã đi rất xa, nhưng nó sẽ không được thực hiện trong mạng
nơ-ron cho mãi tới thập kỷ sau.
Năm 1971, Alexey Grigoryevich Ivakhnenko tiếp tục nghiên cứu của mình về
Neural Network. Ông tạo ra mạng thần kinh sâu 8 lớp bằng cách sử dụng Group
Method of Data Handling (Phương pháp xử lý dữ liệu theo nhóm), viết tắt là GMDH.
Năm 1980, mạng CNN ra đời, Kunihiko Fukushima đưa ra Neocognitron, kiến
trúc mạng nơ-ron phức hợp đầu tiên có thể nhận ra các mẫu hình ảnh chẳng hạn
như các ký tự viết tay.
Năm 1982, ra đời Hopfield Networktiền thân của RNN, John Hopfield tạo ra
Mạng Hopfield, không có gì khác ngoài một mạng nơ-ron tuần hoàn. Nó hoạt
động như một hệ thống bộ nhớ có thể định địa chỉ nội dung và sẽ là công cụ cho
các mô hình RNN tiếp theo.
Cùng năm này, đề xuất ứng dụng Back Propagation vào mạng ANN, Paul
Werbos, trên luận án bằng tiến sĩ của mình năm 1974, ông đề xuất việc sử dụng
Backpropagation để lan truyền lỗi trong quá trình đào tạo Mạng thần kinh. Kết quả lOMoAR cPSD| 58833082 5
từ luận án tiến sĩ của ông cuối cùng được cộng đồng nghiên cứu mạng nơ-ron được
áp dụng thực tế sau này.
Năm 1985, ra đời Boltzmann Machine, David H. Ackley, Geoffrey Hinton và
Terrence Sejnowski đã tạo ra Boltzmann Machine là một Recurrent Neural
Network (Mạng nơ-ron lặp lại ngẫu nhiên). Mạng nơ-ron này chỉ có lớp đầu vào
và ẩn lớp nhưng không có lớp đầu ra.
Năm 1986, ra đời NetTalk – ANN học giọng nói, Terry Sejnowski tạo ra NeTalk,
một mạng nơ-ron học cách phát âm văn bản tiếng Anh bằng cách hiển thị văn bản
dưới dạng đầu vào và khớp phiên âm để so sánh.
• Cũng trong năm này, ứng dụng Back Propagation, Geoffrey Hinton, Rumelhart và
Williams trong bài báo của họ “Learning Representations by back-propagating
errors – Học biểu diễn bằng lỗi thuật toán Lan truyền ngược” cho thấy việc triển
khai thành công quá trình lan truyền ngược trong mạng nơ-ron. Nó đã mở ra những
cánh cổng cho việc đào tạo mạng nơ-ron sâu phức tạp một cách dễ dàng hơn, vốn
là trở ngại chính trong những nghiên cứu trước đây.
Vào thời điểm này, Máy Boltzmann bị hạn chế, Paul Smolensky đưa ra một bản
nâng cấp của Boltzmann Machine không có kết nối nội bộ lớp trong đầu vào và lớp
ẩn. Nó được gọi là Máy Boltzmann hạn chế (RBM). Nó đã trở nên phổ biến trong
nhiều năm tới, đặc biệt là để xây dựng các Recommender System (Hệ thống đề xuất).
Năm 1989, mạng CNN (Convolutional Neural Network – Mạng tích chập) sử dụng
Backpropagation, Yann LeCun sử dụng phương pháp lan truyền ngược để huấn
luyện mạng nơ-ron phức hợp để nhận dạng các chữ số viết tay. Đây là một thời điểm
đột phá vì nó đặt nền tảng của tầm nhìn máy tính hiện đại sử dụng Deep Learning.
Cùng năm, Universal Approximators Theorem – Định lý xấp xỉ phổ quát (Kết quả
thiết lập mật độ của một lớp hàm được tạo theo thuật toán trong một không gian
hàm quan tâm nhất định
), George Cybenko cho ra đời phiên bản đầu tiên của mình
trong bài viết có tên “Approximation by Superpositions of a Sigmoidal function”.
Ông chứng minh rằng bổ sung mạng nơ-ron với một lớp ẩn chứa số lượng nơ-ron
hữu hạn có thể gần đúng với bất kỳ hàm liên tục nào. Nó giúp cho mạng Học sâu
trở nên đáng tin cậy hơn.
Năm 1991, vấn đề về Vanishing Gradient xuất hiện, Sepp Hochreiter xác định vấn
đề về Vanishing Gradient có thể làm cho việc học của mạng nơron sâu trở nên cực
kỳ chậm và gần như không thực tế. Vấn đề này sẽ tiếp tục gây khó khăn cho cộng
đồng học sâu trong nhiều năm tới.
Năm 1997, Cột mốc quan trọng của LSTM, Sepp Hochreiter và Jürgen
Schmidhuber xuất bản một bài báo quan trọng về “Long Short-Term Memory”
(LSTM). Nó là một loại kiến trúc mạng nơ-ron tuần hoàn đã tiếp tục cách mạng
hóa học sâu trong nhiều thập kỷ tới. lOMoAR cPSD| 58833082 6
Năm 2006, xuất hiện Deep Belief Network, Geoffrey Hinton, Ruslan
Salakhutdinov, Osindero và Teh xuất bản bài báo “A fast learning algorithm for
deep belief nets”, trong đó họ xếp chồng nhiều RBM lại với nhau thành từng lớp
và gọi chúng là Deep Belief Networks. Quá trình đào tạo hiệu quả hơn nhiều đối
với lượng dữ liệu lớn.
Năm 2008, bắt đầu GPU Revolution – Cuộc cách mạng GPU, nhóm của Andrew
NG ở Stanford bắt đầu ủng hộ việc sử dụng GPU để đào tạo Mạng thần kinh sâu
nhằm tăng tốc thời gian đào tạo lên nhiều lần. Điều này có thể mang lại tính thực
tiễn trong lĩnh vực Deep Learning để đào tạo về khối lượng dữ liệu khổng lồ một cách hiệu quả.
Năm 2009, khởi động ImageNet, tìm đủ dữ liệu được gắn nhãn luôn là một thách
thức đối với cộng đồng Học sâu. Năm 2009, Fei-Fei Li, một giáo sư tại Stanford,
khởi chạy ImageNet, một cơ sở dữ liệu gồm 14 triệu hình ảnh được dán nhãn. Nó
sẽ là tiêu chuẩn đánh giá cho các nhà nghiên cứu Deep Learning, những người sẽ
tham gia các cuộc thi ImageNet (ILSVRC) hàng năm.
Năm 2011, Combat For Vanishing Gradient, Yoshua Bengio, Antoine Bordes,
Xavier Glorot trong bài báo của họ “Deep Sparse Rectifier Neural Networks” cho
thấy rằng chức năng kích hoạt ReLU có thể tránh được vấn đề về Vanishing
Gradient. Điều này có nghĩa là bây giờ, ngoài GPU, cộng đồng học sâu có một
công cụ khác để giải quyết các vấn đề về thời gian đào tạo dài và không thực tế của mạng nơ-ron sâu.
Năm 2012, bùng nổ học sâu với AlexNet, một kiến trúc mạng nơ-ron phức hợp
CNN sử dụng GPU do Alex Krizhevsky thiết kế, giành chiến thắng trong cuộc thi
phân loại hình ảnh của Imagenet với độ chính xác 84%. Đó là một bước nhảy vọt
vượt bậc so với độ chính xác 75% mà các mô hình trước đó đã đạt được. Chiến
thắng này tạo ra một sự bùng nổ học tập sâu mới trên toàn cầu.
Năm 2014, ra đời Neural Adversarial Generative (GAN), GAN được phát triển bởi
Ian Goodfellow. Nó mở ra một cơ hội ứng dụng hoàn toàn mới của học sâu trong lOMoAR cPSD| 58833082 7
thời trang, nghệ thuật, khoa học do khả năng tổng hợp dữ liệu giống như thật của nó.
Năm 2016, Mô hình AlphaGo, mô hình Học sâu tăng cường của Deepmind đánh
bại nhà vô địch của con người trong trò chơi cờ vây phức tạp. Trò chơi phức tạp
hơn nhiều so với cờ vua, vì vậy kỳ tích này thu hút sự quan tâm của mọi người và
nâng tầm Học sâu lên một cấp độ hoàn toàn mới.
Năm 2019, Giải thưởng Trio Win Turing, Yoshua Bengio, Geoffrey Hinton và Yann
LeCun giành được Giải thưởng Turing 2018 vì những đóng góp to lớn của họ trong
những tiến bộ trong lĩnh vực học sâu và trí tuệ nhân tạo. Đây là một thời điểm quan
trọng đối với những người đã từng làm việc về mạng nơ-ron mà toàn bộ cộng đồng
nghiên cứu Máy học đã bỏ cuộc vào những năm 1970.
• Vì vậy, đằng sau sự tiến hóa này của Deep Learning, có rất nhiều nhà nghiên cứu
học máy đã làm việc với quyết tâm cao độ ngay cả khi không ai tin rằng mạng nơron
có bất kỳ tương lai nào.
III. Một số ứng dụng
Các ví dụ về deep learning
Những mô hình của deep learning xử lý thông tin tương tự như cách bộ não con người hoạt
động. Hiện tại deep learning được áp dụng để thay thế cho nhiều nhiệm vụ mà con người
từng thực hiện. Nó được sử dụng để nhận dạng hình ảnh, nhận dạng giọng nói và xử lý
ngôn ngữ tự nhiên. Ngoài ra nó được ứng dụng để phân tích dữ liệu lớn tập trung vào các
lĩnh vực như chẩn đoán y tế, giao dịch thị trường chứng khoán, nhận dạng hình ảnh, bảo
mật mạng. Dưới đây là những lĩnh vực cụ thể mà deep learning đang được sử dụng: •
Chatbots: Mô hình deep learning được dùng cho chatbots để tương tác với khách hàng nhanh chóng, thuận tiện. •
Text generation: Deep learning được dùng để tự động tạo văn bản mới phù hợp với
chính tả, ngữ pháp và phong cách của văn bản gốc. •
Hàng không vũ trụ và quân sự: Deep learning được dùng để phát hiện các đối tượng
vệ tinh, khu vực quan trọng, khu vực an toàn và không an toàn cho quân đội. •
Tự động hóa trong công nghiệp: Deep learning mang đến sự an toàn cho người lao
động trong nhà máy, nhà kho bằng cách phát hiện kịp thời công nhân hoặc đối tượng
nào đó đến gần máy móc. •
Adding color: Khi dùng deep learning màu sắc sẽ được thêm vào ảnh hoặc video đen
trắng tỉ mỉ, thẩm mỹ và nhanh gọn. •
Y học: Những nhà khoa học đã và đang áp dụng deep learning để phát hiện các tế bào ung thư. lOMoAR cPSD| 58833082 8 •
Computer vision: Thị giác máy tính được cải thiện rõ rệt khi dùng deep learning. Mô
hình này cung cấp cho máy tính độ chính xác cao để nó phát hiện, phân loại, khôi phục hình ảnh.
CHƯƠNG 2: Nguyên lý cơ bản
I. Cách thức deep learning hoạt động
Các chương trình máy tính sử dụng deep learning cũng trải qua quá trình tương tự
như những đứa trẻ mới tập nói. Mỗi thuật toán trong hệ thống phân cấp sẽ áp dụng một
phép biến đổi phi tuyến tính cho đầu vào của nó và dùng những kiến thức mà nó học được
để tạo một mô hình thống kê làm đầu ra. Cách thức đó cứ lặp đi lặp lại liên tục cho tới khi
có được kết quả chính xác nhất.
Trở lại với ví dụ trên ta có thể thấy đối với machine learning truyền thống lập trình viên
cần cho máy tính biết cụ thể thứ mà nó cần tìm để xác định hình ảnh có chứa “chó” hay
không. Quá trình này tốn rất nhiều công sức và sự thành công của máy tính phụ thuộc phần
lớn vào lập trình viên. Thế nhưng với deep learning máy tính sẽ tự nó phân tích và tìm ra
kết quả mà không cần giám sát. Như vậy vừa tiết kiệm thời gian vừa đạt độ chính xác cao.
Sau khi gắn nhãn “chó” hoặc “không chó” cho mỗi hình ảnh thì lập trình viên sẽ cung cấp
toàn bộ số ảnh đó cho máy tính. Chương trình sẽ dùng dữ liệu nhận được để tạo bộ tính
năng cho “chó” và xây dựng mô hình dự đoán. Trong lần dự đoán đầu tiên máy tính có thể
hiểu trong bức ảnh những con vật nào có 4 chân và có đuôi đều gắn nhãn “chó”. Sau đó
mô hình dự đoán lặp đi lặp lại và tăng mức độ phức tạp lên.
Những đứa trẻ mới tập nói phải mất vài tuần mới hiểu khái niệm về “con chó” và nhận diện
được con vật này. Thế nhưng một chương trình máy tính sử dụng deep learning thì việc
phân tích, xác định chính xác hình ảnh chứa “chó” chỉ trong vòng vài giây.
Như vậy có thể thấy deep learning có thể tạo ra các mô hình dự đoán chính xác với số
lượng dữ liệu lớn có gắn nhãn hoặc không gắn, có cấu trúc hoặc không có cấu trúc. Đó
chính là một thế mạnh để deep learning ngày càng được ứng dụng trong mọi lĩnh vực của cuộc sống con người.
1. Phương pháp deep learning
Những mô hình deep learning được tạo ra bằng nhiều phương pháp khác nhau. Có thể
kể đến như Learning rate decay, Transfer learning, Training from scratch, Dropout. • Learning rate decay
Learning rate decay là một siêu tham số quan trọng nhất của quá trình huấn luyện. Đây
là một phương pháp điều chỉnh learning rate qua mỗi bước update các tham số của mô hình.
Tỷ lệ Learning rate quá cao sẽ dẫn tới quá trình huấn luyện không ổn định. Tỷ lệ Learning lOMoAR cPSD| 58833082 9
rate quá thấp lại khiến quá trình huấn luyện kéo dài và tiềm ẩn những khó khăn. • Transfer learning
Transfer learning là một kĩ thuật chuyển giao tri thức giữa các mô hình. Tức là một mô
hình có khả năng tận dụng lại những tri thức được huấn luyện trước đó để thực hiện các
tác vụ mới với khả năng phân loại cụ thể hơn. Phương pháp này sẽ yêu cầu ít dữ liệu hơn
và giảm thời gian tính toán so với những phương pháp khác. • Training from scratch
Training from scratch yêu cầu các nhà phát triển cần thu thập một lượng dữ liệu lớn có
gắn nhãn. Bên cạnh đó cần phải thiết lập và định cấu hình cho mạng để nó có thể tìm hiểu
các tính năng và mô hình. Với các ứng dụng mới hay ứng dụng có danh mục đầu ra lớn rất
thích hợp với Training from scratch. Phương pháp này chưa phổ biến bởi quá trình huấn
luyện kéo dài hơn những phương pháp khác. • Dropout
Dropout là một phương pháp loại bỏ các nút mạng một cách ngẫu nhiên trong quá trình
huấn luyện. Bằng cách thức này đã giúp cải thiện hiệu suất của mạng nơ ron khi thực hiện
các nhiệm vụ học tập có giám sát như phân loại tài liệu, nhận dạng giọng nói, tính toán…
II. Cơ sở lý thuyết
1. Khái niệm về Neural Networks (Mạng nơ-ron)
Neural Network nhân tạo được mô phỏng theo bộ não con người. Nó phân tích dữ liệu
phức tạp, hoàn thành các phép toán, tìm kiếm các mẫu và sử dụng thông tin thu thập
được để đưa ra dự đoán và phân loại. Cũng giống như bộ não con người, Neural
Network nhân tạo có một đơn vị chức năng cơ bản được gọi là nơ-ron. Những nơron
này còn được gọi là các nút, truyền thông tin trong mạng. (Hình 1) lOMoAR cPSD| 58833082 10
Một Neural Network cơ bản có các nút được kết nối với nhau trong các lớp (layer) đầu vào
(input layer), layer ẩn (hidden layer) và layer đầu ra (output layer).
Layer đầu vào xử lí và phân tích thông tin trước khi gửi nó đến layer tiếp theo.
Layer ẩn nhận dữ liệu từ layer đầu vào hoặc các layer ẩn khác. Sau đó, layer ẩn tiếp tục
xử lí và phân tích dữ liệu bằng cách áp dụng một tập hợp các phép toán để chuyển đổi và
trích xuất những tính năng có liên quan từ dữ liệu đầu vào.
Layer đầu ra cung cấp thông tin cuối cùng bằng cách sử dụng các tính năng được trích
xuất. Layer này có thể có một hoặc nhiều nút, tùy thuộc vào kiểu thu thập dữ liệu. Đối
với phân loại nhị phân, đầu ra sẽ có một nút hiển thị kết quả 1 hoặc 0.
2. Các loại mô hình Deep Learning phổ biến:
2.1. Convolutional Neural Networks (CNNs) - Mạng nơ-ron tích chập

CNN là gì? Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một
trong những mô hình Deep Learning tiên tiến. 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 như hiện nay.
CNN được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh. Để tìm
hiểu tại sao thuật toán này được sử dụng rộng rãi cho việc nhận dạng (detection),
chúng ta hãy cùng tìm hiểu về thuật toán này.
Tìm hiểu Convolutional là gì?
Là một cửa sổ trượt (Sliding Windows) trên một ma trận như mô tả hình dưới: lOMoAR cPSD| 58833082 11
Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy ra những
thông tin chính xác nhất mà không cần chọn các feature.
Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa. Ma trận
có kích thước 5×5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột.
Convolution hay tích chập là nhân từng phần tử trong ma trận 3. Sliding Window hay còn
gọi là kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ như trong ví dụ trên là 3×3.
Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3×3 với ma trận bên
trái. Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma trận
Filter với ma trận ảnh 5×5 bên trái. lOMoAR cPSD| 58833082 12
Cấu trúc mạng CNN
Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm
nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi một
lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo.
Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn
cho các lớp tiếp theo. Trong mô hình mạng truyền ngược (feedforward neural network)
thì mỗi neural đầu vào (input node) cho mỗi neural đầu ra trong các lớp tiếp theo. lOMoAR cPSD| 58833082 13
Mô hình này gọi là mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn
(affine layer). Còn trong mô hình CNNs thì ngược lại. Các layer liên kết được với nhau
thông qua cơ chế convolution.
Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy mà ta có được các kết
nối cục bộ. Như vậy mỗi neuron ở lớp kế tiếp sinh ra từ kết quả của filter áp đặt lên một
vùng ảnh cục bộ của neuron trước đó.
Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trăm hàng nghìn
filter như vậy và kết hợp kết quả của chúng lại. Ngoài ra có một số layer khác như
pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu).
Trong quá trình huấn luyện mạng (traning) CNN tự động học các giá trị qua các lớp filter
dựa vào cách thức mà bạn thực hiện. Ví dụ trong tác vụ phân lớp ảnh, CNNs sẽ cố gắng
tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes >
facial > high-level features. Layer cuối cùng được dùng để phân lớp ảnh.
Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính bất biến (Location Invariance)
tính kết hợp (Compositionality). Với cùng một đối tượng, nếu đối tượng này được
chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật
toán sẽ bị ảnh hưởng đáng kể.
Pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyển (translation), phép quay
(rotation) và phép co giãn (scaling). Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông
tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter.
Đó là lý do tại sao CNNs cho ra mô hình với độ chính xác rất cao. Cũng giống như cách
con người nhận biết các vật thể trong tự nhiên. lOMoAR cPSD| 58833082 14
Mạng CNN sử dụng 3 ý tưởng cơ bản:
các trường tiếp nhận cục bộ (local receptive field) • trọng số chia sẻ (shared weights)
tổng hợp (pooling).
Trường tiếp nhận cục bộ (local receptive field)
Đầu vào của mạng CNN là một ảnh. Ví dụ như ảnh có kích thước 28×28 thì tương ứng
đầu vào là một ma trận có 28×28 và giá trị mỗi điểm ảnh là một ô trong ma trận. Trong
mô hình mạng ANN truyền thống thì chúng ta sẽ kết nối các neuron đầu vào vào tầng ảnh.
Tuy nhiên trong CNN chúng ta không làm như vậy mà chúng ta chỉ kết nối trong một vùng
nhỏ của các neuron đầu vào như một filter có kích thước 5×5 tương ứng (28- 5 + 1) 24
điểm ảnh đầu vào. Mỗi một kết nối sẽ học một trọng số và mỗi neuron ẩn sẽ học một bias.
Mỗi một vùng 5×5 đấy gọi là một trường tiếp nhận cục bộ.
Một cách tổng quan, ta có thể tóm tắt các bước tạo ra 1 hidden layer bằng các cách sau: lOMoAR cPSD| 58833082 15
B1: Tạo ra neuron ẩn đầu tiên trong lớp ẩn 1
B2: Dịch filter qua bên phải một cột sẽ tạo được neuron ẩn thứ 2.
với bài toán nhận dạng ảnh người ta thường gọi ma trận lớp đầu vào là feature map, trọng
số xác định các đặc trương là shared weight và độ lệch xác định một feature map là shared
bias. Như vậy đơn giản nhất là qua các bước trên chúng ta chỉ có 1 feature map. Tuy nhiên
trong nhận dạng ảnh chúng ta cần nhiều hơn một feature map. lOMoAR cPSD| 58833082 16
Như vậy, local receptive field thích hợp cho việc phân tách dữ liệu ảnh, giúp chọn ra những
vùng ảnh có giá trị nhất cho việc đánh giá phân lớp.
Trọng số chia sẻ (shared weight and bias)
Đầu tiên, các trọng số cho mỗi filter (kernel) phải giống nhau. Tất cả các nơ-ron trong lớp
ẩn đầu sẽ phát hiện chính xác feature tương tự chỉ ở các vị trí khác nhau trong hình ảnh đầu
vào. Chúng ta gọi việc map từ input layer sang hidden layer là một feature map. Vậy mối
quan hệ giữa số lượng Feature map với số lượng tham số là gì?
Tóm lại, một convolutional layer bao gồm các feature map khác nhau. Mỗi một feature
map giúp detect một vài feature trong bức ảnh. Lợi ích lớn nhất của trọng số chia sẻ là
giảm tối đa số lượng tham số trong mạng CNN.
Lớp tổng hợp (pooling layer)
Lớp pooling thường được sử dụng ngay sau lớp convulational để đơn giản hóa thông tin
đầu ra để giảm bớt số lượng neuron.
Thủ tục pooling phổ biến là max-pooling, thủ tục này chọn giá trị lớn nhất trong vùng đầu vào 2×2.