CÁC ỨNG DỤNG MLBLOCK

Một phần của tài liệu 28074_1712202001941437LuanVan_DangThaiDuy_hoanchinh (Trang 41)

CHƯƠNG 2 THIẾT KẾ VÀ THỰC THI KHỐI MÁY HỌC MLBLOCKS

2.3.CÁC ỨNG DỤNG MLBLOCK

Các cơng cụ học máy hiện nay cĩ rất nhiều và phổ biến. Hiện nay, các hệ thống máy học đã và đang được áp dụng rộng rãi khi các con người cố gắng giảm bớt những khĩ khăn trong quản lý, tìm kiếm dữ liệu hỗ trợ trong nhiều lĩnh vực trong cuộc sống như: hỗ trợ quyết định phát đồ điều trị trong y khoa, dự đốn kết quả kinh doanh, dự đốn – hỗ trợ trong vấn đề tắc nghẽn giao thơng.... Để làm được việc này, cần phải dựa vào các nhà khoa học dữ liệu, làm việc trong một thời gian lâu dài nhằm tìm kiếm một mơ hình “hỗ trợ ra quyết định” tối ưu đối với từng lĩnh vực, từng loại dữ liệu riêng biệt.

MLBlocks ra đời để giải quyết những vấn đề khĩ khăn trong khai phá dữ liệu, với mục đích giúp các nhà khoa học dữ liệu tìm kiếm giải pháp tốt nhất trong thời gian nhanh nhất trong việc khai thác dữ liệu đồ sộ trên.

2.3.1. Một số cơng cụ khai phá dữ liệu

Cĩ rất nhiều sản phẩm và các cơng cụ cho các nhà khoa học dữ liệu sử dụng, một số các cơng cụ đặc biệt như: Theano & Pylearn2, Caffe, Torch & OverFeat, Cuda, Deeplearning4j. Sau đây là một vài cơng cụ được trình bày nhắm mục đích nghiên cứu, thử nghiệm liên quan đến MLBlocks:

Theano & Pylearn2

Theano và Pylearn2 đều được phát triển bởi nhĩm LISA đại diện là Yoshua Bengio tại Đại học Montreal. Theano là một thư viện Python giúp biểu diễn các cơng thức tốn học dễ dàng. Nhờ vậy, chúng ta cĩ thể cài đặt các thuật tốn ngay từ đầu (from scratch).

Nếu chúng ta muốn sử dụng các thuật tốn chuẩn, chúng ta cĩ thể viết các plugin Pylearn2 như các biểu thức Theano. Theano sẽ optimize và stabilize các biểu thức này. Pylearn2 chứa đựng tất cả những gì cần thiết cho việc cài đặt multilayer perceptron/RBM/Stacked Denoting Autoencoder/ConvNets.

Caffe

Caffe được phát triển bởi Berkeley Vision và Learning Center, được viết bởi Yangqing Jia. Đây là một bản cài đặt khá dễ hiểu giúp cài đặt nhanh ConvNets bằng C++. Đánh giá hiệu suất cho thấy, Caffe cĩ thể xử lý hơn 60 triệu bức ảnh mỗi ngày chỉ với một card đồ họa NVIDIA K40 với AlexNet. Ta cĩ thể sử dụng nĩ như một bộ cơng cụ cho tác vụ phân lớp ảnh. Tuy nhiên, bộ cơng cụ này khĩ áp dụng cho các bài tốn liên quan đến xử lý văn bản và tiếng nĩi.

Torch & OverFeat

Torch được viết bằng ngơn ngữ Lua, được sử dụng tại NYU, Facebook AI lab và Google DeepMind. Cơng cụ này cung cấp một mơi trường lập trình tương tự như MATLAB chuyên dùng cho các thuật tốn machine learning. Tại sao họ lại sử dụng Lua/LuaJIT để phát triển thay vì Python? Trong bài báo về Torch7 họ cho rằng “Lua dễ dàng tích hợp với C. Do đĩ, bất kì thư viện C hay C++ nào cũng đều cĩ thể trở thành thư viện Lua.” Lua được viết thuần theo ANSI C, mã nguồn cĩ thể dễ dàng được biên dịch cho bất kì đối tượng nào.

Cuda

Khơng cĩ gì đáng ngạc nhiên khi GPU đã và đang được xem như cơng cụ thúc đẩy hiệu suất tính tốn trong các nghiên cứu về deep learning ngày nay. Cuda- convnet/CuDNN hỗ trợ hầu hết các thư viện như Caffe, Torch hay Theano và được kích hoạt một cách dễ dàng.

Deeplearning4j

Khơng như các cơng cụ được nêu ở trên, Deeplearning4j được thiết kế để sử dụng trong mơi trường doanh nghiệp hơn là một cơng cụ để nghiên cứu thực nghiệm. Như tên gọi của thư viện này, Deeplearning4j là một deep learning framework được phát triển bằng ngơn ngữ lập trình Java, tập trung vào lĩnh vực sản suất cơng nghiệp và hỗ trợ việc thương mại hĩa sản phẩm phần mềm.

Weka và cơng cụ mã nguồn mở khác:

Weka[3] là một hệ thống phần mềm bao gồm nhiều thuật tốn khai phá dữ liệu khác nhau, do các nhà khoa học thuộc trường Đại học Waitako, New Zealand, khởi

xướng và được sự đĩng gĩp của rất nhiều nhà nghiên cứu trên thế giới. Weka là phần mềm mã nguồn mở, cung cấp cơng cụ trực quan và sinh động cho mọi người tìm hiểu về khai phá dữ liệu. Weka cịn cho phép tích hợp các giải thuật khai phá dữ liệu mới phát triển vào mơi trường của nĩ. Hệ thống này được phát triển với ngơn ngữ lập trình java, do vậy cĩ thể hoạt động trên hầu hết các hệ điều hành.

Weka cung cấp nhiều giải thuật khác nhau với nhiều phương thức cho quá trình xử lý để ước lượng kết quả bằng sơ đồ cho bất kì khối dữ liệu nào.

Weka cung cấp những tính năng chính sau:

 Bao gồm nhiều cơng cụ đa dạng để thay đổi tập dữ liệu, xử lý dữ liệu, giải thuật học và phương pháp đánh giá.

 Giao diện đồ họa người dùng (trực quan hĩa dữ liệu).

 Mơi trường để so sánh các giải thuật học.

Chúng ta cĩ thể xử lý trước tập dữ liệu, cho vào trong một sơ đồ, và phân chia các lớp kết quả và thực hiện nĩ mà khơng cần viết bất cứ một chương trình nào.

Weka lấy dữ liệu từ các file cĩ định dạng .arff, nĩ được phát sinh từ một file hoặc một bảng cơ sở dữ liệu.

Các dự án nguồn mở khác trong lĩnh vực này bao gồm ELKI, KNIME, MOA. ELKI tập trung vào học khơng giám sát qua clustering, KNIME tập trung vào các khía cạnh khám phá dữ liệu một cách trực quan, và MOA thì tương tự như Weka (cũng được phát triển tại Đại học Waikato). Trong các dự án này, KNIME được cho là cĩ hiệu suất tốt, được sử dụng phổ biến nhất và được cơng nhận bởi các nhĩm các doanh nghiệp thuộc ngành cơng nghiệp bán lẻ trong đĩ cĩ eBay, Paypal và Deloitte.

Rapid Miner:

Rapid Miner là phần mềm mã nguồn mở miễn phí dùng cho việc khai phá dữ liệu ứng dụng trong xử lý, phân tích, đánh giá và xây dựng mơ hình. Rapid Miner được sử dụng trong các dự án tối ưu hĩa năng lượng và tính tốn thơng số mơ tả phân tử.

Phiên bản phần mềm được nghiên cứu trong luận văn này là phiên bản RapidMiner Community Edition 5.2.003.

Tính năng tuyệt vời của Rapid Miner là hỗ trợ giao diện đồ họa Graphical User Interface cĩ thể hiển thị dữ liệu theo nhiều cách khác nhau. Đĩ là hướng nghiên cứu khơng chỉ cho các nhà khoa học dữ liệu mà cĩ thể dành cho rất nhiều đối tượng ở trình độ khác nhau khi nghiên cứu về MLBlocks. Rapid Miner sử dụng các thuật tốn như Naive Bayes, Nearest Neighbors, và nhiều thuật tốn khác bằng việc tạo ra các giao diện kéo thả dễ dàng và trực quan. Điều này cho phép Rapid Miner nhanh chĩng thiết lập một luồng dữ liệu nếu muốn, nĩ là những tính năng về khai phá dữ liệu trong MLBlocks.

BigML: (adsbygoogle = window.adsbygoogle || []).push({});

BigML là Một sản phẩm tượng trưng cho kỹ thuật mơ hình hĩa dữ liệu cây quyết định, giúp tạo ra một mơ hình mơ tả để hiểu được các mối quan hệ giữa những thuộc tính khác nhau trong tập dữ liệu phức tạp, từ đĩ lựa chọn các thuộc tính thích hợp nhất cho mơ hình dự đốn.

BigML còn được ứng dụng trong các tác vụ dự đốn mơ hình theo một khoảng thời gian xác định như chứng khốn, các khoản vay tín dụng. Tuy nhiên, khơng giống như MLBlocks, BigML chỉ cho phép chọn một thuộc tính duy nhất như là một điều kiện dự đốn, và nếu dữ liệu được sắp xếp theo chuỗi thời gian, nĩ sẽ là một quá trình lặp lại liên tục. Ngồi ra, việc lựa chọn mơ hình kỹ thuật của BigML chỉ tập trung vào mơ hình cây quyết định, và khơng áp dụng kết hợp giữa các kỹ thuật mơ hình hĩa khác nhau.

Trên đây là những cơng cụ tổng quan cho các nhà khoa học dữ liệu và phân tích kinh doanh, và bắt đầu để gợi ý về MLBlocks. Đặc biệt, trên tất cả các cơng cụ được trình bày ở trên, các kỹ thuật cho mơ hình dữ liệu chủ yếu rơi vào các loại Phân loại, hồi quy và / hoặc phân nhĩm; đĩ là tất cả các tập con của các khối trong phần mềm MLBlocks.

2.3.2. Ngơn ngữ lập trình và thư viện cho ML

Trong số các sản phẩm được trình bày ở trên, Weka cĩ vẻ là một hướng tốt nhất đối với các nhà khoa học dữ liệu. Các nhà khoa học trong lĩnh vực Máy học và phân tích dữ liệu phải sử dụng các cơng cụ chuyên biệt hơn để phục vụ cơng việc của họ.

Trong phần này tơi sẽ trình bày những ngơn ngữ lập trình và các thư viện dùng cho máy học. Khơng phải tất cả đều thích hợp để sử dụng trong các hệ thống thực tế, nhưng chúng là cơ sở lý tưởng để chúng ta học tập, tìm hiểu và tạo nguyên mẫu (prototyping).

Python: Scikit Learn

Python là một ngơn ngữ lập trình thơng dịch (interpreted), hướng đối tượng (object-oriented), và là một ngơn ngữ bậc cao (high-level) ngữ nghĩa động (dynamic semantics). Python hỗ trợ các module và gĩi (packages), khuyến khích chương trình module hĩa và tái sử dụng mã nguồn. Trình thơng dịch Python và thư viện chuẩn mở rộng cĩ sẵn dưới dạng mã nguồn hoặc dạng nhị phân cho tất cả các nền tảng chính và cĩ thể được phân phối tự do. Sau đây là các đặc điểm của Python:

 Cú pháp đơn giản, dễ đọc.

 Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object- oriented)

 Hỗ trợ module và hỗ trợ gĩi (package)

 Xử lý lỗi bằng ngoại lệ (Exception)

 Kiểu dữ liệu động ở mức cao.

 Cĩ các bộ thư viện chuẩn và các module ngồi, đáp ứng tất cả các nhu cầu lập trình.

 Cĩ khả năng tương tác với các module khác viết trên C/C++ (Hoặc Java cho Jython, hoặc .Net cho IronPython).

 Cĩ thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface). Machine Learning trong Python được xây dựng dựa trên NumPy và Scipy. Thư viện này rất phù hợp với các lập trình viên Python hoặc Ruby. Nĩ rất dễ sử dụng, mạnh mẽ và đi kèm với tài liệu hướng dẫn tuyệt vời.

Gĩi tính tốn khoa học như NumPy, scipy và panda của cấu trúc dữ liệu thực sự cĩ hiệu quả bằng cách tận dụng sức mạnh của API Python viết bằng C C++ /. NumPy là viết tắt của Numeric Python, là một gĩi thư viện hỗ trợ cho các tính tốn khoa học bằng ngơn ngữ lập trình Python.

Tương tự như vậy, các thư viện như Scikit đã được thiết kế để xây dựng hỗ trợ nhiều thuật tốn máy học.

Nhìn chung, hầu hết các gĩi phần mềm cung cấp các cơng cụ thơ cho các nhà khoa học dữ liệu cĩ thể thực hiện các chương trình nghiên cứu, thí nghiệm của riêng mình. Luận văn này sẽ nghiên cứu làm thế nào để xây dựng MLBlocks như là một những cơng cụ để cung cấp một mức độ trừu tượng cao hơn cho các nhà khoa học dữ liệu.

R và Matlab:

R là một ngơn ngữ lập trình mã nguồn mở

Hỗ trợ các machine learning, thống kê máy tính

Cĩ nhiều thư viện hỗ trợ trong ngành thống kê tin học

R rất phổ biến, nhưng nĩ khơng phải là lựa chọn duy nhất: Python cũng ngày càng phổ biến

R được biết đến là một ngơn ngữ lập trình mạnh mẽ và chuyên biệt dành cho những bài tốn thống kê, hỗ trợ một thư viện lớn các số liệu thống kê và các thuật tốn máy học. Nĩ cung cấp hiệu suất tuyệt vời, nhưng cú pháp khá phức tạp của nĩ đơi khi gây khĩ cho các lập trình viên.

Trái ngược với Python, Matlab cũng cung cấp một nền tảng cho chuyên ngành thống kê tin học, và cĩ thể cung cấp hiệu suất rất tốt. Hai ngơn ngữ này đã truyền cảm hứng cho sự phát triển của chính Python.

2.3.3. Cơng cụ thế hệ 2.0

Google Prediction API:

Google đã trở thành một nhà cung cấp hàng đầu các giao diện lập trình ứng dụng (API) và các sản phẩm Machine Learning như một dịch vụ (MLaaS).

Ra mắt vào tháng Chín năm 2010, Dự án API7 Google là một ví dụ về khả năng cung cấp hệ thống máy học như là dịch vụ (MLaaS). Nĩ hoạt động bằng cách cho phép các nhà khoa học dữ liệu tải dữ liệu của mình thơng qua một giao diện người dùng lên Google Cloud Storage, khi đĩ họ cĩ thể gọi các thư viện xử lý dữ liệu thơng qua các truy vấn HTTP. Google Machine Learning sử dụng các kỹ thuật phân loại dữ (adsbygoogle = window.adsbygoogle || []).push({});

liệu và hồi quy đơn giản và được dùng nhiều trong lĩnh vực phân tích dữ liệu, thăm dị và dự đốn xu hướng bất động sản. Nhược điểm của Google Machine Learning là nĩ bị giới hạn kiểu dữ liệu và người sử dụng khơng thể biết được các kỹ thuật mơ hình được áp dụng trên các tập dữ liệu của họ. Phương pháp này, gần giống như sử dụng thư viện NumPy và Scikit để khai phá một tập dữ liệu huấn luyện và cĩ một máy chủ Website và đưa ra dự đốn dựa trên giải thuật SVM.

Directions API Google hiện nay được ứng dụng cho phép tính tốn đường đi giữa các vị trí, cho phép người dùng tìm đường đi bằng các phương tiện khác nhau: đi bộ, xe đạp, xe ơ tơ….

Dịch vụ này thực hiện tìm kiếm thơng qua nhiều đối số, trong đĩ cĩ 2 đối số quan trọng là: Điểm nguồn và điểm đích. Các đối số cĩ thể ở dạng Text String (ví dụ: điểm nguồn = Cơng viên phần mềm Đà Nẵng và điểm đích = trường Đại học Sư phạm) hoặc thay vào đĩ là kinh độ – vĩ độ tương ứng với từng địa điểm.

Amazon Machine Learning:

Gần đây nhất, vào ngày 09 tháng 4 năm 2015, một trong những gã khổng lồ Internet đã cơng bố giải pháp MLaaS. Amazon cung cấp giải pháp rất giống với đối thủ Google của mình. Người sử dụng cũng phải sử dụng một dịch vụ của Amazon (S3, Redshift hoặc RDS) để tải lên một tập tin dữ liệu với định dạng CSV, và nhãn của dữ liệu đã được xác định. Ngồi ra, người dùng cũng chỉ cĩ thể sử dụng kỹ thuật đơn giản với rất ít tùy biến như phân loại hoặc hồi quy.

Amazon Machine Learning cho phép thiết lập web service để đưa ra dự đốn trong thời gian thực, nhưng việc cấu hình sẽ tương đối phức tạp. Chính vì những hạn chế này, Mlaas của Amazon chỉ được sử dụng bởi những người dùng cĩ rất ít kinh nghiệm với máy học và muốn thiết lập một dịch vụ máy học đơn giản. Bên cạnh đĩ, hiệu suất của hệ thống dự báo trên nền tảng Mlaas của Amazon sẽ dựa nhiều vào kỹ năng cấu hình được thực hiện bởi người sử dụng, điều này làm mất tính linh hoạt của hệ thống.

Azure Machine Learning:

Cĩ hai phases lớn là Training phase và Testing phase. Xin nhắc lại là với các bài tốn Supervised learning, ta cĩ các cặp dữ liệu đầu vào và dữ liệu đầu ra (input, output), với các bài tốn áp dụng mơ hình học khơng giám sát, ta chỉ cĩ input mà thơi.

TRAINING PHASE

Cĩ hai khối cĩ nền màu xanh lục chúng ta cần phải thiết kế:

Feature Extractor

ĐẦU RA

Luận văn xin đề cập đầu ra của khối này trước vì mục đích của việc áp dụng các phương pháp khai phá dữ liệu là nhằm tạo ra một bộ dữ liệu “mẫu” (Feature Extractor) cĩ thể đại diện cho tồn bộ khối dữ liệu thơ ban đầu, được xem như là ‘chìa khĩa’ để khai thác dữ liệu thơ ban đầu thành dữ liệu phù hợp với từng mục đích khác nhau.

ĐẦU VÀO

• Raw training input: Raw input là tất cả các thơng tin ta biết về dữ liệu. Ví dụ: Với ảnh thì là giá trị của từng pixel; với văn bản thì là từng từ, từng câu; với tập tin âm thanh thì nĩ là một đoạn tín hiệu; với cơ sở dữ liệu về ‘hoa’ thì nĩ là các thuộc tính về độ dài các cánh hoa và đài hoa, … Dữ liệu thơ này thường khơng ở dạng vector, khơng cĩ số chiều như nhau. Thậm chí cĩ thể cĩ số chiều như nhau nhưng số chiều quá lớn, như một bức ảnh màu 1000 pixel x 1000 pixel thì số phần tử đã là 3×1063×106 (3 vì ảnh màu thường cĩ 3 hệ màu chủ đạo: Đỏ, xanh lá cây, xanh dương). Đây là một con số quá lớn, khơng thuận lợi cho lưu trữ và tính tốn.

• (optional) output của training set. Trong các bài tốn áp dụng mơ hình học

Một phần của tài liệu 28074_1712202001941437LuanVan_DangThaiDuy_hoanchinh (Trang 41)