Và gần đây, một thuật ngữ “học máy nâng cao” rất được nhiềungười quan tâ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 1BỘ CÔNG THƯƠNG TRƯỜ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
PHẠM XUÂN TỪNG
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 3LIỆ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 4MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ HỌC MÁY NÂNG CAO 2
1.1 Khái niệm về học máy nâng cao 2
1.1.1 Xu hướng chính trong học máy nâng cao 2
1.1.2 Tại sao cần phải ứng dụng học máy nâng cao 3
1.2 Ứng dụng học máy nâng cao 5
CHƯƠNG 2 PHƯƠNG PHÁP SVM TRONG BI TOÁN PHÂN LOẠI TÊN TRẺ EM PHỔ BIẾN 6
2.1 Tổng quan về phương pháp SVM 6
2.1.1 Phương pháp SVM: 6
2.1.2 Các đặc điểm quan trọng của phương pháp SVM: 6
2.1.3 Cách thức hoạt động của phương pháp SVM 8
2.2 Các bước giải quyết bài toán 10
CHƯƠNG 3 TRIỂN KHAI PHƯƠNG PHÁP SVM VO BI TOÁN TÊN TRẺ EM PHỔ BIẾN 12
3.1 Giới thiệu về pycharm 12
3.1.1 Khái niệm về pycharm 12
3.1.2 Các tính năng của pycharm 12
3.1.3 Cài dặt pycharm 13
3.1.4 Hướng dẫn sử dụng pycharm 17
3.2 Xây dựng thuật toán SVM vào tên trẻ em phổ biến 18
3.2.1 Phát biểu bài toán: 18
3.2.2 Bộ dữ liệu: 19
3.2.3 Tiến hành bài toán: 19
KẾT LUẬN 23
TI LIỆU THAM KHẢO 24
Trang 5DANH MỤC HÌNH ẢNH
Trang 6LỜ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 quantrọ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ĩnhvự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ànhtốt công việc hơn Và gần đây, một thuật ngữ “học máy nâng cao” rất được nhiềungười quan tâ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ụng một lượng lớn dữ liệu cùng những thuật toán cho phép nó thựchiệ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 Đồngthờ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 quantâ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
ra nhữ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úngta 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ẻ
em phổ 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óiriê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ư kinhnghiệm quý 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ên cứu và học tập của chúng em
Trang 7CHƯƠ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ọcmáy truyền thống không thể xử lý
1.1.1Xu 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 8 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 ápdụng thà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à y học
1.1.2Tạ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ọcmáy nâng cao cung cấp các phương pháp như học sâu (deep learning) cóthể học từ dữ liệu hình ảnh, âm thanh, văn bản và nhiều loại dữ liệu khác
Trang 9 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ácquy trì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 101.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 định xemliệ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ănnhưng học lực lạ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áo tình hình thời tiết trong nông nghiệp, xác định xu hướng thịtrườngchứng khoán để lên kế hoạch đầu tư thích hợp
Trang 11CHƯƠNG 2 PHƯƠNG PHÁP SVM TRONG BI TOÁN PHÂN LOẠI TÊN TRẺ EM
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.2Cá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ớiranh giới là lớn nhất
Trang 12 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ủaSVM là tối thiểu hóa hàm mất mát, trong đó các sai sót phân loạ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 trong quá 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ácbà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 đa lớ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 sai sót phân loạitrên tập huấn luyện Giá trị C lớn sẽ tạo ra một mô hình nghiêm ngặt, trong khi Cnhỏ 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 Vector Machines for DeepLearning (SVM-DL) và kết hợp các đặc điểm của SVM vớ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 loạikhông tuyến tính Nhờ đó, nó có thể phân loại dữ liệu không thể được phân chiabằng ranh giới tuyến tính
Trang 132.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 đúngcho 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 hai lớp tốtnhấ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 14Quy 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ủa mộtlớp nào đó đến đường hyper-plane Khoảng cách này được gọi là "Margin", hãynhì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ày khi 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ợp sau:
Hình:
Trang 15Có 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 tacầ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ểm trò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ôi saophía ngoài hơn, SVM có tính năng cho phép bỏ qua các ngoại lệ và tìm ra hyper-plane có biên giới tối đa Do đó có thể nói, SVM có khả năng mạnh trong việc chấpnhận ngoại lệ
Trang 162.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
B2: 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ụng phươngpháp SVM Dữ liệu cần được chuyển đổi thành dạng vector đặc trưng Các đặc trưngthườ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ảm chiều dữliệu bằng cách chuyển đổi dữ liệu từ không gian có chiều cao sang không gian 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ân loạ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 17CHƯƠNG 3 TRIỂN KHAI PHƯƠNG PHÁP SVM VO BI TOÁN TÊN TRẺ EM PHỔ
BIẾN
3.1 Giới thiệu về pycharm
3.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ọ
3.1.2Cá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ứacá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ằng Pythontrong 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ùy chỉnhtheo 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 18- 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ến
trong 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ỗi toà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úc bêntrong 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
3.1.3 Cà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êu cầ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 19B2: 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 đặt pycharm
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 đường dẫnmặc định
B6: Trong bước tiếp theo, bạn có thể đặt Installation Options theo yêu cầu, sauđónhấp vào nút Next để tiếp tục
Trang 20B8: Sau các bước này, bạn bấm vào nút Install như trên để bắt đầu quá trìnhcài đặt.
Hình:
B9: Khi bạn nhấp vào nút Kết thúc, quá trình cài đặt PyCharm của bạn đã hoàn tất
Hình: