1. Mô hình nhận diện
captcha sử dụng công
nghệ Deep Learning
Giảng viên phụ trách: TS. Nguyễn Mạnh Thắng
Học viên thực hiện: Nguyễn Hồng Lê – Phạm Hải Long
2. I. Tổng quan về mã Captcha
1.1. Khái niệm CAPTCHA.
1.2. Phân loại CAPTCHA.
1.3. Nguyên tắc hoạt động của CAPTCHA.
1.4. Ứng dụng của CAPTCHA.
3. 1.1. Khái niệm CAPTCHA.
CAPTCHA là viết tắt của Completely
Automated Public Turing Test to Tell
Computers and Human Apart nghĩa là Kiểm
định Turing công khai hoàn toàn tự động để
phân biệt máy tính và con người.
CAPTCHA được sử dụng để bảo mật
internet, chống lại các cuộc tấn công từ chối
dịch vụ, thư rác, chống Spam (bình luận,
tạo tài khoản hàng loạt …); ngăn chặn
Crawl Data tự động; đảm bảo tương tác với
người dùng thực sự chứ không phải bot.
5. 1.3. Nguyên tắc hoạt động của CAPTCHA.
Một từ sẽ được chọn từ từ điển của hệ thống, qua một module chuyển văn
bản thành hình ảnh. Ảnh này được hiển thị trước người dùng và yêu cầu
nhập lại từ đó vào form và nhấn submit file này sẽ được ghi lại và chuyển
về module trên máy chủ, máy chủ sẽ tiến hành so sánh 2 file, file được tạo
ra và file được trả về, nếu 2 file này trả về cùng 1 từ thì được cấp quyền
truy cập và thao tác.
6. 1.4. Ứng dụng của CAPTCHA.
Hạn chế việc đăng ký hàng loạt Email
Ngăn chặn tấn công Fishing
Hạn chế việc sử dụng Bot chơi các trò chơi game trực tuyến.
Ngăn chặn tấn công từ điển để dò mật khẩu.
Chống thư rác
Hạn chế tấn công từ chối dịch vụ, thu thập dữ liệu.
Hạn chế spam trên các website bán hàng, review sản phẩm, điền vào form liên
hệ trên website …
Tạo sự tin cậy cho các thăm dò trực tuyến. …
7. II.Tổng quan về Deep Learning 6
2.1. Khái niệm.
2.2. Phân biệt Deep Learning và Machine Learning.
2.3. Deep Learning làm việc như thế nào.
2.4. Phân loại Deep Learning
2.5. Tổng quan CNN
2.6. Ứng dụng của Deep Learning
8. 2.1. Khái niệm Deep Learning
Deep Learning là là một tập hợp con của Machine Learning được sử dụng để
giải quyết các bài toàn khó như nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên,
nhận dạng ảnh, và nhiều lĩnh vực khác.
Deep Learning sử dụng kiến trúc Deep Neural. Mạng này gồm nhiều lớp (layer)
neural, mỗi lớp có thể có hàng nghìn hoặc hàng triệu neural. Khi đưa dữ liệu
đầu vào vào mạng neural, mỗi neural tính toán một giá trị và truyền giá trị đó
đến các neural ở lớp tiếp theo. Các neural ở lớp cuối cùng sẽ đưa ra kết quả
dự đoán.
Deep Learning có thể học từ dữ liệu rất lớn và phức tạp, và có khả năng tìm ra
các mối quan hệ ẩn giữa các đặc trưng của dữ liệu. Tuy nhiên, để huấn luyện
một mạng neural nhân tạo sâu, cần nhiều dữ liệu và tài nguyên tính toán cao.
10. 2.2. Phân biệt Deep Learning và Machine
Learning.
Machine Learning Deep Learning
Mục đích Làm cho máy móc học tập thông qua
dữ liệu để chúng có thể giải quyết các
vấn đề.
Bắt chước cách bộ não con người hoạt động để
xử lý dữ liệu, tạo ra các mẫu sử dụng cho việc
đưa ra quyết định.
Dữ liệu làm việc Dữ liệu có cấu trúc. Dữ liệu phi cấu trúc.
Công nghệ • Supervised learning.
• Unsupervised learning.
• Reinforcement learning.
• Artificial Neural Network - ANN
• Convolutional neural networks - CNN
• Recurrent neural network - RNN
Phương pháp
học
Phải dựa trên các đặc trưng đã được
xác định trước để xây dựng mô hình.
Tự học và tìm ra các mối quan hệ ẩn giữa các
đặc trưng của dữ liệu.
Ứng dụng Sử dụng trong các bài toán đơn giản
như xác định thuộc tính của sản
phẩm, phân tích dữ liệu khách hang.
Sử dụng trong nhận dạng ảnh, xử lý ngôn ngữ tự
nhiên, dịch máy, điều khiển tự động hay ứng
dụng trong y học …
11. 2.3. Deep Learning làm việc như thế nào.
Kiến trúc của Deep Learning bao gồm các tầng neuron được kết nối với
nhau, mỗi tầng nhận đầu vào từ tầng trước đó, xử lý thông tin và chuyển
tiếp đến tầng tiếp theo để đưa ra kết quả cuối cùng.
12. 2.3. Deep Learning làm việc như thế nào.
Quá trình huấn luyện mô hình Deep Learning bao gồm ba giai đoạn chính:
Feedforward: dữ liệu được đưa vào mô hình, được xử lý qua các tầng neural,
và đầu ra của mô hình được tính toán.
Backpropagation: độ lệch giữa kết quả tính toán và kết quả thực tế được tính
toán và lan truyền ngược lại từ output về input vào. Quá trình này sẽ điều chỉnh
các trọng số kết nối giữa các neural để tối ưu hóa mô hình.
Optimization: mô hình được cập nhật bằng cách tối ưu hóa các tham số để
giảm thiểu Loss và tăng độ chính xác.
Sau khi mô hình được huấn luyện, nó có thể được sử dụng để dự đoán đầu ra
cho các dữ liệu mới, tương tự như cách nó được sử dụng trong quá trình huấn
luyện.
13. 2.4. Phân loại Deep Learning
Artificial Neural Network (ANN) ANN được cấu tạo bởi nhiều điểm nối, nơi các dữ liệu sẽ
được xử lý và phân tích. Thông thường, hệ thống ANN có thể tự học thông qua việc phân
tích dữ liệu và tự điều chỉnh cấu trúc của mình để phù hợp với nguồn thông tin mới. Đây là
một công cụ đắc lực hỗ trợ việc mô hình hóa dữ liệu thống kê phức tạp. ANN có thể được
sử dụng để giải quyết các vấn đề liên quan đến: Dữ liệu dạng bảng, hình ảnh, văn bản.
Convolutional neural networks (CNN), được sử dụng chủ yếu trong các ứng dụng phân
loại hình ảnh và computer vision, có thể thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận
dạng các hình ảnh và dữ liệu đa chiều từ thế giới thực để cho ra các thông tin số hoặc biểu
tượng, ví dụ có thể sử dụng mạng CNN để nhận dạng CAPTCHA.
Recurrent neural network (RNN) là mạng neural hồi quy, RNN có khả năng “nhớ” các
thông tin được tính toán trước đó. Trên lý thuyết, RNN có thể sử dụng được thông tin của
một văn bản rất dài, tuy nhiên thực tế thì nó chỉ có thể “nhớ” được một vài bước trước. Nó
sử dụng dữ liệu time series hoặc sequential, đều là các kiểu dữ liệu tuần tự dành cho dữ
liệu có cấu trúc.
18. 2.6. Ứng dụng của Deep Learning
Nhận dạng hình ảnh và video, nhận dạng khuôn mặt
Xử lý ngôn ngữ tự nhiên: dịch máy, phân loại văn bản …
Xe tự lái
Dự báo tài chính: dự báo xu hướng tài chính, cổ phiếu …
Y tế: Phân tích hình ảnh y tế, dự đoán bệnh và phác đồ điều trị
Tự động hoá: Sử dụng phát hiện và nhận diện các đối tượng.