Và gần đây, một thuật ngữ “học máy nâng cao” rất được nhiều người quantâm.Thay vì phải code phần mềm với cách thức thủ công theo một bộ hướng dẫn cụ thểnhằm hoàn thành một nhiệm vụ đề ra
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG CHUYÊN ĐỀ HỌC PHẦN
HỌC MÁY NÂNG CAO
ĐỀ TI:
PHƯƠNG PHÁP SVM ĐỂ PHÂN LOẠI TÊN TRẺ EM PHỔ BIẾN
Sinh viên thực hiện : ĐỖ VĂN TIẾN
PHẠM XUÂN TỪNG Giảng viên hướng dẫn : VŨ VĂN ĐỊNH
Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM
Hà Nội, tháng năm 2023
1.
Trang 2PHIẾU CHẤM ĐIỂM STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 9
CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY NÂNG CAO 10
1.1 Khái niệm về học máy nâng cao 10
1.1.1 Xu hướng chính trong học máy nâng cao 10
1.1.2 Tại sao cần phải ứng dụng học máy nâng cao 11
CHƯƠNG 2 PHƯƠNG PHÁP SVM TRONG BI TOÁN PHÂN LOẠI TÊN TRẺ EM PHỔ BIẾN 13
2.1 Tổng quan về phương pháp SVM 13
2.1.1 Phương pháp SVM: 13
2.1.2 Các đặc điểm quan trọng của phương pháp SVM: 13
2.1.3 Cách thức hoạt động của phương pháp SVM 15
2.2 Các bước giải quyết bài toán 17
CHƯƠNG 3 TRIỂN KHAI PHƯƠNG PHÁP SVM VO BI TOÁN TÊN TRẺ EM PHỔ BIẾN 19
3.1 Giới thiệu về pycharm 19
3.1.1 Khái niệm về pycharm 19
3.1.2 Các tính năng của pycharm 19
3.1.3 Cài dặt pycharm 20
3.1.4 Hướng dẫn sử dụng pycharm 24
KẾT LUẬN 26
Trang 4LIỆT KÊ CHỮ VIẾT TẮT
CSI Current source Inverters Bộ biến đổi nguồn dòngVSI Voltage source Inverters Bộ biến đổi nguồn áp
Trang 5DANH MỤC HÌNH ẢNH
Trang 6DANH MỤC BẢNG BIỂU
Bảng 4.1: Bảng lưu trữ thông tin các ảnh Image 33Bảng 4.2: Bảng lưu trữ đặc trưng của ảnh Feature 33Bảng 4.3: Bảng lưu trữ thông tin độ lệch chuẩn của tập ảnh 33
Trang 7LỜI MỞ ĐẦU
Công nghệ ngày càng phổ biến và không ai có thể phủ nhận được tầm quan trọng
và những hiệu quả mà nó đem lại cho cuộc sống chúng ta Bất kỳ trong lĩnh vực nào,
sự góp mặt của trí tuệ nhân tạo sẽ giúp con người làm việc và hoàn thành tốt công việchơn Và gần đây, một thuật ngữ “học máy nâng cao” rất được nhiều người quantâm.Thay vì phải code phần mềm với cách thức thủ công theo một bộ hướng dẫn cụ thểnhằm hoàn thành một nhiệm vụ đề ra thì máy tính sẽ tự “học hỏi” bằng cách sử dụngmột lượng lớn dữ liệu cùng những thuật toán cho phép nó thực hiện các tác vụ.Đây là một lĩnh vực khoa học tuy không mới, nhưng cho thấy lĩnh vực trí tuệnhân tạo đang ngày càng phát triển và có thể tiến xa hơn trong tương lai Đồng thời,thời điểm này nó được xem là một lĩnh vực “nóng” và dành rất nhiều mối quan tâm
để phát triển nó một cách mạnh mẽ, bùng nổ hơn
Những điều trên được hiểu là nó có thể thực hiện tự động, nhanh chóng để tạo ranhững mô hình cho phép phân tích các dữ liệu có quy mô lớn hơn và phức tạp hơnđồng thời đưa ra những kết quả một cách nhanh và chính xác hơn
Chính sự hiệu quả trong công việc và các lợi ích vượt bậc mà nó đem lại chochúng ta khiến học máy nâng cao ngày càng được chú trọng và quan tâm nhiều hơn
Vì vậy chúng em đã chọn đề tài “Sử dụng phương pháp SVM để phân loại tên trẻ emphổ biến” để làm báo cáo
Chúng em xin chân thành gửi lời cảm ơn tới các thầy cô giáo trong Trường Đạihọc Điện Lực nói chung và các thầy cô giáo trong Khoa Công nghệ thông tin nói riêng
đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức cũng như kinh nghiệmquý báu trong suốt quá trình học Đặc biệt, em gửi lời cảm ơn đến thầy Vũ Văn Định
đã tận tình theo sát giúp đỡ, trực tiếp chỉ bảo, hướng dẫn trong suốt quá trình nghiêncứu và học tập của chúng em
Trang 8CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY NÂNG CAO
1.1 Khái niệm về học máy nâng cao
Học máy nâng cao là một nhánh của học máy tập trung vào việc phát triển cácthuật toán và mô hình học máy mới, tiên tiến hơn Học máy nâng cao thường được sửdụng để giải quyết các vấn đề khó khăn hoặc phức tạp mà các phương pháp học máytruyền thống không thể xử lý
1.1.1 Xu hướng chính trong học máy nâng cao
Máy học sâu: Máy học sâu sử dụng các mạng nơ-ron nhân tạo để học các mối
quan hệ phức tạp giữa các dữ liệu Máy học sâu đã được áp dụng thành côngtrong nhiều lĩnh vực khác nhau, bao gồm nhận dạng hình ảnh, xử lý ngôn ngữ tựnhiên và dịch máy
Hình 1: máy học sâu
Trang 9 Học máy tăng cường: Học máy tăng cường sử dụng các thuật toán để học cách
thực hiện các hành động trong môi trường để đạt được mục tiêu mong muốn.Học máy tăng cường đã được áp dụng thành công trong các lĩnh vực như chơigame, điều khiển robot và tự lái xe
Hình 2: Học máy tang cường
Học máy tích hợp: Học máy tích hợp kết hợp các kỹ thuật học máy khác nhau
để tạo ra các mô hình học máy hiệu quả hơn Học máy tích hợp đã được áp dụngthành công trong các lĩnh vực như phát hiện gian lận, phân tích thị trường và yhọc
1.1.2 Tại sao cần phải ứng dụng học máy nâng cao
Ứng dụng học máy nâng cao (Advanced Machine Learning) đóng vai trò quantrọng trong nhiều lĩnh vực khác nhau vì nó cung cấp khả năng giải quyết các vấn đềphức tạp và đưa ra dự đoán chính xác hơn Dưới đây là một số lý do tại sao cần phảiứng dụng học máy nâng cao:
Xử lý dữ liệu lớn và phức tạp: Trong nhiều trường hợp, dữ liệu thu thập được
không chỉ lớn mà còn phức tạp Học máy nâng cao cung cấp các kỹ thuật và môhình phức tạp hơn có khả năng xử lý các tập dữ liệu lớn và phức tạp hơn
Khả năng học từ dữ liệu không cấu trúc: Trong thế giới thực, nhiều dữ liệu
không được cấu trúc hoặc không có dạng số học truyền thống Học máy nângcao cung cấp các phương pháp như học sâu (deep learning) có thể học từ dữ liệuhình ảnh, âm thanh, văn bản và nhiều loại dữ liệu khác
Trang 10 Giải quyết vấn đề phân loại và nhận diện: Trong các bài toán phân loại và
nhận diện, học máy nâng cao thường dẫn đến kết quả tốt hơn Ví dụ, trong nhậndiện văn bản từ hình ảnh (OCR), sử dụng mạng nơ-ron sâu có thể cung cấp kếtquả chính xác hơn so với các phương pháp truyền thống
Học sâu trong thị giác máy: Học sâu (deep learning) đã mang lại những tiến bộ
đáng kể trong các lĩnh vực như nhận diện vật thể, nhận diện khuôn mặt, xử lýhình ảnh y tế và nhiều ứng dụng khác
Xử lý ngôn ngữ tự nhiên (NLP) phức tạp: Học máy nâng cao đóng vai trò
quan trọng trong việc phân tích, dịch, và tạo ra văn bản tự nhiên, cung cấp khảnăng hiểu rõ nghĩa của ngôn ngữ tự nhiên
Tăng tính tổ chức và khả năng tìm kiếm thông tin: Học máy nâng cao giúp
xây dựng các hệ thống tổ chức thông tin, tìm kiếm thông tin hiệu quả, và đưa racác đề xuất tùy chỉnh
Tối ưu hóa quy trình công nghiệp: Trong các ngành công nghiệp như sản xuất,
y tế, tài chính, học máy nâng cao có thể được áp dụng để tối ưu hóa các quytrình và tăng cường hiệu suất
Dự báo và tiên đoán: Các mô hình học máy nâng cao thường có khả năng dự
đoán tốt hơn, giúp trong việc đưa ra quyết định dựa trên thông tin dự báo chínhxác
Trang 111.2 Ứng dụng học máy nâng cao
Nhiều hoạt động hàng ngày của chúng ta được trợ giúp bởi các thuật toán baogồm:
Trong y tế: xác định bệnh lý của người bệnh mới dựa trên dữ liệu lịch sửcủa
các bệnh nhân có cùng bệnh lý có cùng các đặc điểm đã được chữa khỏitrước đây, hay xác định loại thuốc phù hợp
Trong lĩnh vực ngân hàng: xác định khả năng khách hàng chậm trả các khoảnvay hoặc rủi ro tín dụng do nợ xấu dựa trên phân tích Credit score; xác địnhxem liệu các giao dịch có hành vi phạm tội, lừa đảo hay không
Trong giáo dục: phân loại các học sinh theo hoàn cảnh, học lực để xem xemcần
hỗ trợ gì cho những học sinh ví dụ như hoàn cảnh sống khó khăn nhưng học lựclại tốt
Trong thương mại điện tử: phân loại khách hàng theo sở thích cụ thể để hỗ trợpersonalized marketing hay xây dựng hệ thống khuyến nghị, dựa trên dữ liệu từwebsite, social media
Trong kinh tế nói chung: giúp dự báo các sự kiện kinh tế trong tương lai, dự báotình hình thời tiết trong nông nghiệp, xác định xu hướng thị trườngchứngkhoán để lên kế hoạch đầu tư thích hợp
Trang 12CHƯƠNG 2 PHƯƠNG PHÁP SVM TRONG BI TOÁN PHÂN LOẠI TÊN
Hình:
Support Vectors hiểu một cách đơn giản là các đối tượng trên đồ thị tọa độquan sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất
2.1.2 Các đặc điểm quan trọng của phương pháp SVM:
Ranh giới quyết định (Decision Boundary): SVM tìm ra ranh giới quyết
định (hyperplane) tốt nhất để phân tách các lớp dữ liệu Ranh giới này đượcchọn sao cho khoảng cách từ các điểm dữ liệu gần nhất (các vector hỗ trợ)tới ranh giới là lớn nhất
Trang 13 Hàm mất mát (Loss Function): SVM sử dụng hàm mất mát, thường được
gọi là hàm mất mát Hinge, để đánh giá hiệu suất của ranh giới quyết định.Mục tiêu của SVM là tối thiểu hóa hàm mất mát, trong đó các sai sót phânloại bị phạt nặng
Hỗ trợ Vector (Support Vectors): Các điểm dữ liệu gần nhất đến ranh giới
quyết định được gọi là các vector hỗ trợ Chúng có vai trò quan trọng trongquá trình xác định ranh giới tối ưu
Kernel Trick: SVM cho phép sử dụng kernel trick để biến đổi không gian
dữ liệu, từ đó tạo ra các ranh giới phi tuyến tính Điều này giúp SVM xử lýhiệu quả các bài toán phân loại phức tạp hơn
Phân loại đa lớp: SVM ban đầu được phát triển cho bài toán phân loại hai
lớp (binary classification), nhưng nó có thể mở rộng để xử lý phân loại đalớp Một số kỹ thuật cho phân loại đa lớp bao gồm One-vs-All (OvA) vàOne-vs-One (OvO)
Regularization (Chế tạo mô hình): SVM hỗ trợ sự kiểm soát sự phức tạp
của mô hình thông qua tham số C Tham số này điều chỉnh mức độ phạt saisót phân loại trên tập huấn luyện Giá trị C lớn sẽ tạo ra một mô hình nghiêmngặt, trong khi C nhỏ hơn cho phép mô hình chấp nhận một số sai sót
SVM trong học sâu: Mô hình mạng nơ-ron sâu (deep neural networks) đã
trở nên phổ biến hơn, nhưng SVM vẫn có vai trò trong một số ứng dụng cụthể Các mô hình SVM sử dụng trong học sâu thường gọi là Support VectorMachines for Deep Learning (SVM-DL) và kết hợp các đặc điểm của SVMvới khả năng học sâu
Phân loại không tuyến tính: SVM có thể sử dụng các hàm kernel như hàm
đa thức, hàm Radial Basis Function (RBF), hoặc hàm Sigmoid để xử lý phân
Trang 14loại không tuyến tính Nhờ đó, nó có thể phân loại dữ liệu không thể đượcphân chia bằng ranh giới tuyến tính.
Ứng dụng thực tế: SVM đã được áp dụng rộng rãi trong các lĩnh vực như y
tế (nhận diện bệnh, dự đoán kết quả điều trị), tài chính (phân loại rủi ro tíndụng), thị giác máy tính (nhận diện đối tượng), và nhiều lĩnh vực khác
2.1.3 Cách thức hoạt động của phương pháp SVM
- Identify the right hyper-plane (Scenario-1):
Ở đây, có 3 đường hyper-lane (A, B and C) Bây giờ đường nào là hyper-laneđúng cho nhóm ngôi sao và hình tròn
Hình:
Quy tắc số một để chọn 1 hyper-lane, chọn một hyper-plane để phân chia hailớp tốt nhất Trong ví dụ này chính là đường B
- identify the right hyper-plane (Scenario-2):
Ở đây chúng ta cũng có 3 đường hyper-plane (A, B và C), theo quy tắc số 1,chúng đều thỏa mãn
Trang 15Quy tắc thứ hai chính là xác định khoảng cách lớn nhất từ điểu gần nhất củamột lớp nào đó đến đường hyper-plane Khoảng cách này được gọi là "Margin",Hãy nhìn hình bên dưới, trong đấy có thể nhìn thấy khoảng cách margin lớn nhấtđấy là đường C Cần nhớ nếu chọn lầm hyper-lane có margin thấp hơn thì sau nàykhi dữ liệu tăng lên thì sẽ sinh ra nguy cơ cao về việc xác định nhầm lớp cho dữliệu
- Identify the right hyper-plane (Scenario-3):
Sử dụng các nguyên tắc đã nêu trên để chọn ra hyper-plane cho trường hợpsau:
Hình:
Trang 16Có thể có một vài người sẽ chọn đường B bởi vì nó có margin cao hơn đường
A, nhưng đấy sẽ không đúng bởi vì nguyên tắc đầu tiên sẽ là nguyên tắc số 1,chúng ta cần chọn hyper-plane để phân chia các lớp thành riêng biệt Vì vậy đường
A mới là lựa chọn chính xác
- Can we classify two classes (Scenario-4):
Tiếp theo hãy xem hình bên dưới, không thể chia thành hai lớp riêng biệt với 1đường thẳng, để tạo 1 phần chỉ có các ngôi sao và một vùng chỉ chứa các điểmtròn
Hình:
Ở đây sẽ chấp nhận, một ngôi sao ở bên ngoài cuối được xem như một ngôisao phía ngoài hơn, SVM có tính năng cho phép bỏ qua các ngoại lệ và tìm rahyper-plane có biên giới tối đa Do đó có thể nói, SVM có khả năng mạnh trongviệc chấp nhận ngoại lệ
2.2 Các bước giải quyết bài toán
B1: Thu thập dữ liệu
Dữ liệu có thể được tham khảo từ các nguồn để làm thành file csv ví dụ như:
Các trang web đăng kí
Các cơ sở giáo dục
Trang 17B2: Chuẩn bị dữ liệu:
Sau khi thu thập dữ liệu, cần chuẩn bị dữ liệu để phù hợp với việc sử dụngphương pháp SVM Dữ liệu cần được chuyển đổi thành dạng vector đặc trưng.Các đặc trưng thường được sử dụng để phân loại tên trẻ em phổ biến bao gồm:
Số lượng ký tự trong tên
Số lượng nguyên âm trong tên
Số lượng phụ âm trong tên
Tần suất xuất hiện của các chữ cái trong tên
B3: Sử dụng PCA:
Tiếp theo, sử dụng PCA để giảm chiều dữ liệu PCA là một kỹ thuật giảmchiều dữ liệu bằng cách chuyển đổi dữ liệu từ không gian có chiều cao sang khônggian có chiều thấp hơn Điều này giúp giảm số lượng đặc trưng cần thiết để phânloại tên trẻ em
B4: Huấn luyện phương pháp SVM:
Sau khi dữ liệu đã được giảm chiều, cần huấn luyện phương pháp SVM trên
dữ liệu đã được chuẩn bị Phương pháp SVM sẽ học cách phân loại các tên trẻ emthành các nhóm phổ biến
Trang 18CHƯƠNG 3 TRIỂN KHAI PHƯƠNG PHÁP SVM VO BI TOÁN TÊN
TRẺ EM PHỔ BIẾN
1.1 Giới thiệu về pycharm
1.1.1Khái niệm về pycharm
Pycharm là một nền tảng kết kết hợp được JetBrains phát triển như một IDE(Môi trường phát triển tích hợp) để phát triển các ứng dụng cho lập trình trongPython Một số ứng dụng lớn như Tweeter, Facebook, Amazon và Pinterest sửdụng Pycharm để làm IDE Python của họ
1.1.2 Các tính năng của pycharm
Pycharm có thể chạy trên Windows, Linux, hoặc Mac OS Ngoài ra, nó cũngchứa các Mô đun và các gói giúp các lập trình viên phát triển phần mềm bằngPython trong thời gian ngắn với ít công sức hơn Hơn nữa, nó cũng có khả năng tùychỉnh theo yêu cầu của nhà phát triển
Khi cài đặt Pycharm, LTV có thể sử dụng một số tính năng sau:
- Giúp các lập trình viên viết mã chất lượng cao
- Xác định lỗi một cách dễ dàng
- Cung cấp tính năng tự động hoàn thiện và hướng dẫn hoàn thiện mã
Trang 19- Giúp các nhà phát triển trong việc chỉnh sửa và nâng cao mã với ít nỗ lực
và thời gian hơn
- Với việc điều hướng mã, nhà phát triển có thể dễ dàng điều hướng một lớp,hàm hoặc tệp
- LTV có thể xác định vị trí của một phần tử, một ký hiệu hoặc một biếntrong mã nguồn trong thời gian ngắn khi sử dụng Pycharm
- Bằng việc sử dụng chế độ thấu kính, nhà phát triển có thể kiểm tra và gỡ lỗitoàn bộ mã nguồn
- Tái cấu trúc trong Pycharm cho phép các nhà phát triển cải thiện cấu trúcbên trong mà không thay đổi hiệu suất bên ngoài của mã
- Nó cũng cho phép phân chia các lớp với các chức năng mở rộng hơn.1.1.3Cài dặt pycharm
Cài đặt Pycharm vô cùng đơn giản
B1: Bạn truy cập vào link sau: www.jetbeans.com
Hình:
Có hai phiên bản: Chuyên nghiệp và Cộng đồng Phiên bản cộng đồng là
mã nguồn mở miễn phí trong khi phiên bản Chuyên nghiệp là phiên bản yêucầu trả phí Bạn có thể tùy chọn cài đặt Pycharm dựa theo nhu cầu của bạn
Trang 20B2: Tải xuống phiên bản cộng đồng Nếu muốn làm việc với phiên bản Pro,thì bạn cần tải và dung thử có hạn.
B3: Tệp tải xuống sẽ nằm trong mục bạn tải, nhấn vào tệp để cài đặtpycharm
B4: Khi cửa sổ sau hiện, nhấn vào tiếp theo và quá trình cài đặt sẽ được bắtđầu
Hình:
B5: Sau khi nhấn vào Next, đầu tiên sẽ xuất hiện cửa sổ thiết lập vị trí càiđặt Lưu ý : Bạn có thể chọn một thư mục cho vị trí cài đặt hoặc giữ lại đườngdẫn mặc định