Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
1,2 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ TỪ XA QUA MẠNG Bài tiểu luận: Tìm hiểu thuật toán Neural Network và Support Vector Machine Áp dụng nhận dạng chữ số viết tay Môn học: Công nghệ tri thức và ứng dụng GVHD: GS. TSKH. Hoàng Kiếm Học viên thực hiện - Lê Hoài Nam – CH1101106 - Lương Chấn Viễn – CH1101155 Tháng 6 - 2012 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Contents 2 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Chương 1: Mở đầu Công nghệ thông tin được ra đời và phát triển từ những năm nữa cuối của thế kỉ XX. Và đến nay đã gặt hái được rất nhiều thành tựu vượt bậc, khả năng áp dụng rộng khắp vào tất các các ngành kinh tế, xã hội khác nhau và làm thay đổi không ít lối sống, cách suy nghĩ của con người hiện đại. Tuy nhiên, nhu cầu của con người ngày càng cao, họ không chỉ cần những thiết bị Công nghệ thông tin làm việc theo mệnh lệnh được lập trình sẵn, hỗ trợ tính toán cơ bản hay lưu trữ dữ liệu và tìm kiếm thông thường. Họ cần những thiết bị máy tính thông minh hơn, giúp họ tìm ra lời giải những bài toán khó, gợi ý cho họ trong giải quyết các vấn đề phức tạp v.v… Trước nhu cầu mới, ngành Khoa học máy tính nói chung và lĩnh vực Trí tuệ nhân tạo nói riêng nhận vai trò quan trọng trong việc nghiên cứu tìm ra các giải pháp tiên tiến giúp làm ra những phần mềm và thiết bị máy tính đáp ứng nhu cầu trên. Chúng phải có khả năng tự động xử lý thông tin, xử lý tri thức, suy luận tính toán và điều khiển phức tạp. Một số ứng dụng trong lĩnh vực này có thể kể đến như: các hệ tự động lập luận và chứng minh định lý; các hệ chuyên gia; các hệ hiểu và xử lý ngôn ngữ tự nhiên; máy học và khai khoáng dữ liệu; robotics v.v… Nói tới máy học, hiện nay có rất nhiều thành tựu tiên tiến và rất nhiều trong số đó đã được áp dụng vào thực tế trên nhiều lĩnh vực như tự động hóa, hỗ trợ ra quyết định, nhận dạng v.v… Với mục tiêu tiếp cận lĩnh vực này, nhóm đã chọn 2 thuật toán máy học nổi tiếng là Neuron Network và Support Vector Machine để tìm hiểu và nghiên cứu cùng với việc xây dựng 1 ứng dụng nhỏ vào việc nhận dạng chữ số. Mô hình bài toán máy học chung là dựa trên tập dữ liệu học, máy tính sẽ tự tìm ra kết quả khi người dùng đưa vào tập dự liệu mới. Dữ liệu này thường là tập các thuộc tính dạng số nhị phân. Do đó để nhận dạng được hình ảnh, hình ảnh phải được xử lý chuyển sang chỗ số nhị phân. Trong báo cáo này, hình ảnh các kí tự số sẽ được chuyển thành ảnh nhị phân có kích thước 16x16 pixel, và tập dữ liệu học sẽ có 256 thuộc tính tương đương với 256 điểm ảnh trong bức hình. Chi tiết sẽ được trình bày ở chương 4 của báo cáo này. 3 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Chương 2: Neural Network 1 Nguồn gốc Neural network hay còn gọi là mạng nơron, bắt nguồn từ việc mô phỏng cách thức hoạt động của bộ não con người. Ta quan niệm bộ não được cấu thành từ các neurons thần kinh, các neurons này nối với nhau tạo thành một hệ thống phức tạp. Các cơ quan thụ cảm (như thính giác, thị giác…) truyền “thông tin” cảm nhận được đến từng vùng riêng biệt của, thông tin được xử lý và dẫn truyền qua các lớp neurons và sau cùng chuyển hóa thành phản ứng của con người. Cấu trúc của một neuron gồm phần nhận “tín hiệu” gọi là Dendrite, hay “input wires”. Tín hiệu được xử lý bởi phần nhân “Nucleus” và trả về “tín hiệu” phản hồi tại Axon. Axon của neuron này được nối kết với các dendrite của neuron lớn tiếp theo, khi đó “thông tin” đầu ra của neuron này được truyền đi từ axon bởi dòng điện sinh học “electrical impules” đến dendrite của neuron thu nhận như là tín hiệu đầu vào. 4 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM 1. Mô hình một neuron – logistic unit Dựa trên lý thuyết về neuron thần kinh được trình bày ở trên, mô hình 1 neuron nhân tạo có cấu trúc như hình bên dưới. Một neuron, hay còn gọi là unit có n giá trị đầu vào. Một unit khi được “kích hoạt” khi nhận giá trị từ đầu vào sẽ cho giá trị 5 Layer 3 Output layer Layer 1 Input layer Layer 2 Hidden layer Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Với với gọi là "bias unit"; và gọi là trọng số (weight) hay tham số (parameters) của unit. Có nhiều loại hàm kích hoạt (activation function) cho một neuron nhân tạo, nhưng phổ biến nhất là hàm sigmoid (logistic) . Nên neuron còn được gọi là logistic unit. 2. Mô hình neural network Một neural network gồm nhiều lớp các neuron. Lớp đầu tiên gọi là input layer, lớp này có số lượng node (unit) bằng với số lượng thông tin đầu vào . Lớp cuối cùng gọi là output layer, số lượng node của lớp này tùy theo bài toán của chúng ta. Trong bài toán phân loại nhị phân, ta cần 1 output unit trả về như trên hình. Các lớp giữa 2 intput layer và output layer được gọi là hidden layer. Tùy thiết kế mà số 6 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM lượng các hidden layer hay số lượng các unit trong mỗi layer có thể khác nhau. Đa phần, số lượng của các hidden layer là giống nhau. Số lượng các hidden layer càng nhiều, thì cho kết quả “tốt”nhưng tiêu tốn thời gian tính toán nhiều hơn. Tạ gọi là giá trị trả về sau khi được kích hoạt của unit thứ trong lớp . Khi đó và . Ma trận là ma trận chứa các trọng số từ lớp đến lớp . Ví dụ như hình trên ta có Gọi là số lượng unit tại lớp thì là một ma trận chiều. 3. Phân lớp đa lớp (Multi-class classification) Để giải bài toán phân lớp đa lớp, tức với , ta xây dựng cấu trúc mạng neural network sao cho có output unit như sau (cho trường hợp ) Và cho lớp 1, cho lớp 2 cho lớp 3 … Và chú ý rằng ta chuyển giá trị của . 4. Forward propagation Forward propagation (lan truyền tiến) là các bước thực hiện để tính khi biết và . Khởi tạo 7 Layer 1 Layer 2 Layer 3 Layer 4 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Khi biết ta tính Và cuối cùng ta tính được . 5. Cost function Cho tập dữ liệu huấn luyện . Gọi là tổng số các lớp trong mạng neural network; là số lượng các unit trong lớp thứ . Ví dụ đối mạng sau ta có ;. Và ta ký hiệu là phần tử thứ trong vector . Trong logistic regression, ta có hàm cost function như sau Trong neural network ta có hàm cost function như sau: Ta thấy là bình phương độ sai lệch giữa giá trị ước lượng và giá trị thực tế . Hàm có thể xem như là tổng các của tất cả các training example. Mục tiêu của ta là tìm các tổ hợp sao cho nhỏ nhất. Bằng cách sử dụng các thuật toán tối ưu hóa như gradient ascent. Tuy nhiên, việc sử dụng thuật toán cần tính toán và trong quá trình tối ưu . Việc tính toán theo định nghĩa, tuy nhiên việc tính có độ phức tạp cao khi tính theo 8 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Phần tiếp theo ta sẽ trình bày về thuật toán back propagation (lan truyền ngược) để tính một cách hiệu quả. 6. Back propagation algorithm Với một training example áp dụng trong một mạng neural network Ta định nghĩa là sai số của node thứ tại lớp như sau: Trong đó toán tử element wise operator giữa 2 ma trận được định nghĩa Thuật toán backward propagation tính : Input: giá trị của tại điểm cần tính đạo hàm riêng set . for each training example : set . forward propagation to compute . backward propagation to compute . update or for all . return End of algorithms Sau đó, ta có thể áp dụng thuật toán tối ưu như gradient descent để tính giá trị . 9 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM 10 [...]... máy tính Và khoảng 60% kí tự viết tay được scan hoặc chụp thành hình ảnh đưa vào máy tính Tuy nhiên tốc độ “training” và nhận dạng của Neural Network chậm hơn SVM khá nhiều Các kí tự số viết tay thường khó nhận dạng được là số 6, số 9, số 8 Lý do chủ yếu là vì chương trình xử lý hình ảnh cho kết quả nhị phân chưa thật sự tốt 16 - Neural Network và SVM Kết luận: Việc nhận dạng chữ số viết tay hiện tại... số lượng support vector, vì thế thời gian dự đoán rất nhanh 17 - Tổng kết Báo cáo đã trình bày và phân tích 2 thuật toán máy học kinh điển hiện nay là Neural Network và Support Vector Machine Xây dựng thành công chương trình demo nhận dạng chữ số qua hình ảnh, sử dụng ngôn ngữ lập trình C++ và thư viện OpenCV 2.4 Trong tương lai, nhóm sẽ phát triển chương trình demo để nhận dạng tốt hơn các kí tự số, ... lượng của 2 thuật toán nói trên vì kĩ thuật xử lý ảnh chưa thật sự tốt và còn phụ thuộc nhiều vào chất lượng hình ảnh và độ nhiễu của môi trường xung quanh Tuy nhiên, với tỉ lệ nhận dạng thành công như trên, cũng đã phần nào nói lên hiệu quả khi được đầu tư áp dụng vào thực tế 28 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Chương 5: Kết luận 1 So sánh giữa 2 thuật toán SVM và Neural Network -... nhiên của 1 chữ số Hình ảnh tự nhiên của 1 chữ số Dùng hàm findContour để tìm hình chữ nhật nhỏ nhất chứa chữ số cần nhận dạng Dùng hàm findContour để tìm hình chữ nhật nhỏ nhất chứa chữ số cần nhận dạng Cắt hình ban đầu theo kích thước và vị trí hình chữ nhật tìm được Cắt hình ban đầu theo kích thước và vị trí hình chữ nhật tìm được Chuyển thành hình trắng đen (grayscale) Chuyển thành hình trắng đen... nhau dùng để nhận dạng các kí tự từ 0…9 Mỗi engine sẽ có input là 1 vector 256 giá trị và output là {1,-1} Khi thực hiện nhận dạng, chương trình sẽ duyệt qua 10 engine này để tìm engine nào trả về giá trị output là 1 sẽ tương ứng với số nhận dạng được 14.3 Chương trình demo 25 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Hình ảnh tự nhiên của 1 chữ số Hình ảnh tự nhiên của 1 chữ số Dùng hàm findContour... Viễn Neural Network và SVM Chương 3: Support Vector Machine Tương tự như Neuron nhân tạo, Support Vector Machine (SVM) cũng là 1 trong những thật toán học có giám sát phổ biến hiện nay Nói về SVM, báo cáo sẽ trình bày các phần về Margin và ý tưởng về việc phân loại dữ liệu bằng khoảng cách lớn, Optimal margin classifier, cách sử dụng Lagrange duality và cuối cùng là thuật toán SMO để giải bài toán. .. đầu từ một thuật toán heuristic, trải qua thực nghiệm và áp dụng, và cuối cùng tiến đến lý thuyết Ngược lại, quá trình phát triển của SVM bắt nguồn từ lý thuyết, sau đó áp dụng lý thuyết trên vào thực nghiệm Trong Neural Network, việc tìm kiếm tối ưu có thể chỉ tìm được lời giải cục bộ địa phương thay vì lời giải tối ưu toàn cục Trong khi đó, lời giải của SVM là toàn cục và là duy nhất do bài toán tối... multipliers) Chúng ta tìm các đạo hàm riêng của và giải để tìm ra và Tiếp theo là phần trình bày về lớp bài toán tương đương với bài toán tìm optimal margin classifier Ta xét bài toán tối ưu ban đầu - the primal optimization problem: s.t Ta định nghĩa generalized Lagrangian: và ở đây, các là các hệ số Lagrange Ta xét bài toán sau: 14 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Với một bất kỳ... Nam – Lương Chấn Viễn Neural Network và SVM 13.1 Coordinate ascent Trước tiên, ta trình bày về thuật toán coordinate ascent Xét bài toán tối ưu không chứa điều kiện ràng buộc sau Để giải bài toán trên, ta sử dụng thuật toán coordinate ascent Thuật toán coordinate ascent 1 loop until convergence { 2 for do { 3 } } End of Coordinate ascent Trong vòng lặp trong cùng (dòng 3) của thuật toán, ta sẽ giữ các... ở phần sau Tại đây ta giả sử đã tìm được , ta sử dụng phương trình để tính Từ bài toán primal ban đầu, ta tìm tối ưu Để dự đoán giá trị của một input mới, ta tính , nếu giá trị này lớn hơn 0 thì Sử dụng phương trình ta được 17 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Như đã biết trước, hầu hết các trừ của các support vector Khi đó 11 Kernels Trong thuật toán linear regression, ta thay . TỪ XA QUA MẠNG Bài tiểu luận: Tìm hiểu thuật toán Neural Network và Support Vector Machine Áp dụng nhận dạng chữ số viết tay Môn học: Công nghệ tri thức và ứng dụng GVHD: GS. TSKH. Hoàng Kiếm Học. trợ ra quyết định, nhận dạng v.v… Với mục tiêu tiếp cận lĩnh vực này, nhóm đã chọn 2 thuật toán máy học nổi tiếng là Neuron Network và Support Vector Machine để tìm hiểu và nghiên cứu cùng với. thể áp dụng thuật toán tối ưu như gradient descent để tính giá trị . 9 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM 10 Lê Hoài Nam – Lương Chấn Viễn Neural Network và SVM Chương 3: Support