1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Tiểu luận) nghiên cứu mạng nơ ron thích hợp cho việc nhận dạng chữ viết số tay

28 4 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 399,71 KB

Nội dung

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU MẠNG NƠ RON THÍCH HỢP CHO VIỆC NHẬN DẠNG CHỮ VIẾT SỐ TAY Hà Nội – Năm 2021 TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU MẠNG NƠ RON THÍCH HỢP CHO VIỆC NHẬN DẠNG CHỮ VIẾT SỐ TAY Sinh viên thực hiện: Công nghệ thông tin Mã sinh viên: ĐH7C1 Chuyên ngành: Trần Thuỷ Mai Lớp: 1711060171 Khoá h ọc: 2017-2021 NGƯỜI HƯỚNG DẪN: Nguyễn Văn Hách Hà Nội – Năm 2021 LỜI N I Đ U Ngày khơng phủ nhận vai trò quan trọng máy tinh nghiên cứu khoa học kỹ thuật đời sống Máy tính làm điều kỳ điệu giải vấn để tướng chủng nan giải Cảng ngày cảng có nhiều người tự hỏi, liệu máy tính có khả suy nghĩ người hay chưa? Chúng ta không trả lời câu Thay vào đó, nêu khác biệt chủ yếu cách làm việc máy tính óc người Một máy tính, đủ có mạnh đến đâu nữa, phải làm việc theo chương trình xác hoạch định trước chuyên gia Bài toán phức tạp việc lập trình cơng phu Trong người làm việc cách học tập rèn luyện, làm việc người có khả liên tưởng, kết nối việc với việc khác, quan trọng hết, họ sáng tạo Do có khả liên tưởng, người đễ đàng làm nhiều điều mà việc lập trình cho máy tính địi hỏi nhiều cơng sức Chẳng hạn việc nhận dạng hay trị chơi chữ Một em bé tự học hỏi để nhận đạng phân loại đồ vật chung quanh mình, biết thức ăn, đồ chơi Một người bình thưởng đốn vài chữ chữ Nhưng thật khó mà dạy cho máy tính làm việc Từ lâu nhà khoa học nhận thấy ưu điểm óc người tìm cách bắt chước để thực máy tính, tạo cho có khả học tập, nhận dạng phản loại Các mạng neural nhân tạo đời từ nổ lực Nó thực ý nhanh chóng trở thành hướng nghiên cứu đảy triển vọng mục đích xảy đựng máy thơng minh tiến gần tới trí tuệ người Đặc biệt lĩnh vực nhận dạng Bạn gửi Hôm lúc 03:27 Ngày khơng phủ nhận vai trị quan trọng máy tính nghiên cứu khoa học kỹ thuật đời sống Máy tính làm điều kỳ điệu giải vấn để tưởng chừng nan giải Càng ngày có nhiều người tự hỏi, liệu máy tính có khả suy nghĩ người hay chưa? Chúng ta không trả lời câu hỏi Thay vào đó, nêu khác biệt chủ yếu cách làm việc máy tính óc người Một máy tính, đủ có mạnh đến đâu nữa, phải làm việc theo chương trình xác hoạch định trước chun gia Bài tốn phức tạp việc lập trình cơng phu Trong người làm việc cách học tập rèn luyện, làm việc người có khả liên tưởng, kết việc với việc khác, quan trọng hết, họ sáng tạo Do có khả liên tưởng, người dễ dàng làm nhiều điều mà việc lập trình cho máy tính địi hỏi nhiều cơng sức Chẳng hạn việc nhận dạng hay trị chơi chữ Một em bé tự học hỏi để nhận dạng phân loại đồ vật chung quanh mình, biết thức ăn, đồ chơi Một người bình thưởng đốn vài chữ chữ Nhưng thật khó mà dạy cho máy tính làm việc Từ lâu nhà khoa học nhận thấy ưu điểm óc người tìm cách bắt chước để thực máy tính, tạo cho có khả học tập, nhận dạng phản loại Các mạng neural nhân tạo đời từ nổ lực Nó thực ý nhanh chóng trở thành hướng nghiên cứu đầy triển vọng mục đích xây đựng máy thơng minh tiến gần tới trí tuệ người Đặc biệt lĩnh vực nhận dạng Bạn gửi Hôm lúc 03:29 Ngày khơng phủ nhận vai trị quan trọng máy tính nghiên cứu khoa học kỹ thuật đời sống Máy tính làm điều kỳ điệu giải vấn để tưởng chừng nan giải Càng ngày có nhiều người tự hỏi, liệu máy tính có khả suy nghĩ người hay chưa? Chúng ta không trả lời câu hỏi Thay vào đó, nêu khác biệt chủ yếu cách làm việc máy tính óc người Một máy tính, đủ có mạnh đến đâu nữa, phải làm việc theo chương trình xác hoạch định trước chun gia Bài tốn phức tạp việc lập trình cơng phu Trong người làm việc cách học tập rèn luyện, làm việc người có khả liên tưởng, kết nối việc với việc khác, quan trọng hết, họ sáng tạo Do có khả liên tưởng, người dễ dàng làm nhiều điều mà việc lập trình cho máy tính địi hỏi nhiều cơng sức Chẳng hạn việc nhận dạng hay trị chơi chữ Một em bé tự học hỏi để nhận dạng phân loại đồ vật chung quanh mình, biết thức ăn, đồ chơi Một người bình thưởng đốn vài chữ chữ Nhưng thật khó mà dạy cho máy tính làm việc Từ lâu nhà khoa học nhận thấy ưu điểm óc người tìm cách bắt chước để thực máy tính, tạo cho có khả học tập, nhận dạng phản loại Các mạng neural nhân tạo đời từ nổ lực Nó thực ý nhanh chóng trở thành hướng nghiên cứu đầy triển vọng mục đích xây đựng máy thơng minh tiến gần tới trí tuệ người Đặc biệt lĩnh vực nhận dạng Trong báo cáo tập lớn mơn Tính tốn mềm em xin trình bày đề tài “Nghiên cứu mạng Nơ ron thích hợp cho việc nhận dạng chữ viết số tay” Sinh viên thực Trần Thuỷ Mai T MT TNỘIDUNG Như nói trên, báo cáo em trình bày đề tài “Nghiên cứu mạng Nơ ron thích hợp cho việc nhận dạng chữ viết số tay” Với c ác l ý thuy ết, ph ân t ích ứng dụng mạng Nơron thích hợp cho việc nhận dạng chữ viết số tay” Nội dung phần báo cáo gồm 14 chương : • I Tổng quan mạng nơron • II Cấu trúc nơron • III Học có giám sát học khơng có giám sát • IV Giải thuật lan truyền ngược • V Learning Rate • VI Hàm Active • VII Bản đồ tổ chức Kohonen SOM (Kohonen Self -Organizing Maps) • VIII Hàm Neighborhood • IX Lưới Topology • X Một số hình dạng lớp Kohonen • XI Thiết kế mạng Nơron • XII Các lĩnh vực ứng dụng mạng nơron • XIII Cài đặt mơi trường phát triển • XIV Các đoạn code sử dụng I Tổng quan mạng nơron 1.1 Mạng nơron Mạng nơron nhân tạo, Artificaial Neural Network (ANN) gọi tắt mạng nơron (neural network), mơ hình xử lý thơng tin theo cách thức xử lý thông tin hệ nơron sinh học Nó tạo nên từ số lượng lớn phần tử (gọi phần tử xử lý hay nơron) kết nối với thông qua liên kết (gọi trọng số liên kết) làm việc thể thông để giải vấn đề cụ thể 1.2 Mạng nơron ứng dụng lĩnh vực Một mạng nơron nhân tạo cấu hình cho ứng dụng cụ thể (nhận dạng mẫu, phân loại liệu,…) thơng qua q trình học từ mẫu huấn luyện Về chất học trình hiệu chỉnh trọng số liên kết nơron II Cấu trúc nơron Cấu trúc tổng qt Giải thích ký hiệu: • Tập đầu vào: tín hiệu vào (input signal) nơron, tín hiệu thường đưa dạng vector N chiều • Tập liên kết: Mỗi liên kết thể trọng số (gọi trọng số liên kết – Synaptic weight) Thông thường trọng số khởi tạo cách ngẫu nhiên thời điểm khởi tạo mạng cập nhật liên tục q trình học mạng • Bộ tổng (Summing function): thường dùng để tính tổng tích đầu vào với trọng số liên kết • Ngưỡng (còn gọi độ lệch – bias): Ngưỡng thường đưa vào thành phần hàm truyền • Hàm truyền (Transfer function): Hàm dùng để giới hạn phạm vi đầu nơron Nó nhận đầu vào kết hàm tổng ngưỡng cho • Đầu ra: Là tín hiệu đầu nơron, với nơron có tối đa đầu III Học có giám sát học khơng có giám sát Một mạng nơron cần đào tạo trước đưa vào sử dụng Huấn luyện liên quan đến việc đưa vào mạng nơron mẫu huấn luyện cho phép tìm hiểu cách hiệu chỉnh trọng số liên kết thơng số khác mạng nơ-ron phân loại thành hai loại dựa vào loại học tập 3.1 Mạng nơron học có giám sát: Trong phương pháp học có giám sát, mạng nơron học từ mẫu Tập huấn luyện bao gồm tập hợp mẫu đầu vào kết đầu mong muốn tương ứng với mẫu đầu vào Các mạng nơron điều chỉnh trọng số liên kết để tìm hiểu mối quan hệ cặp đầu vào-đầu Mạng nơron huấn luyện thành cơng hể sử dụng để tìm đầu phù hợp đầu vào hợp lệ Mục tiêu việc học có giám sát mơ hình tồn cục tìm hàm f, cho sẵn tập điểm có dạng (x, f(x)) 3.2 Trong phương pháp học khơng có giám sát: Mạng nơron nhận tập hợp đầu vào từ mơi trường bên ngồi Nó bí ẩn để tưởng tượng mạng có thể học hỏi từ thiết lập số đầu vào Tuy nhiên, để thức chứng minh mạng lưới khơng có giám sát xây dựng đại diện đầu vào sử dụng cho việc định IV Giải thuật lan truyền ngược Để huấn luyện mạng nơron ta cung cấp cho huấn luyện cho phép học cách điều chỉnh trọng số liên kết mạng Một tập huấn luyện tập hợp mẫu huấn luyện Training Set = Set of training samples Một mẫu đào tạo cặp vector đầu vào mẫu vectơ đầu mong muốn Trong trường hợp đào tạo khơng có giám sát, vector đầu nên để null Chiều dài vector đầu vào nên tương tự số lượng nơron lớp đầu vào, độ dài vector đầu nên số nơron lớp đầu Training Sample = (input vector, desired vector) Backpropagation thuật toán thuật toán giám sát thường sử dụng để huấn luyện mạng feed-forward Nó giới thiệu lần Paul Werbos sách 'The Roots Backpropagation' Ý tưởng xác định mạng nơron hoạt động với đầu vào mẫu, so sánh khác hành vi mong muốn sau điều chỉnh trọng số liên kết để giảm thiểu khác biệt Quá trình lặp lặp lại cho tất mẫu đào tạo nhiều lần thiết lập để đảm bảo huấn luyện phù hợp Việc huấn luyện mạng MLP thuật toán lan truyền ngược sai số bao gồm hai trình: Quá trình truyền thẳng trình truyền ngược Trong trình truyền thẳng, vector đầu vào cung cấp cho nơron mạng tín hiệu lan truyền lớp mạng Cuối ta tính tập đầu thực mạng Trong suốt trình truyền thẳng, tất trọng số liên kết mạng cố định Ngược lại, trình truyền ngược, tất trọng số liên kết hiệu chỉnh theo luật hiệu chỉnh trọng số Sai số mạng đo độ sai lệch đầu thu với giá trị mục tiêu tương ứng Các sai số sau lan truyền ngược lớp mạng (từ lớp cuối đến lớp đầu tiên) Các trọng số liên kết hiệu chỉnh cho đầu thực mạng gần với giá trị mục tiêu tốt V Learning Rate Learning rate thông số mà điều chỉnh việc làm để mạng noron học nhanh làm để việc huấn luyện hiệu Hãy xem xét nơron mà trải qua trình học tập Giả định trọng số số liên kết mạng phần đào tạo 0,3 Khi mạng giới thiệu mẫu huấn luyện mới, thuật toán huấn luyện yêu cầu liên kết thay đổi trọng số đến 0,7 để học mẫu phù hợp Nếu cập nhật trọng số lập tức, mạng nơron chắn học mẫu mới, có xu hướng quên tất mẫu học trước Điều trọng số (0,3) kết tất việc học mà trải qua Vì vậy, khơng trực tiếp thay đổi trọng số tới 0,7 Thay vào đó, tăng phần nhỏ (chọn 25%) thay đổi cần thiết Vì vậy, trọng số liên kết thay đổi thành 0,4 chuyển sang mẫu đào tạo Yếu tố (0,25 trường hợp này) gọi Learning Rate Căn theo cách này, tất mẫu huấn luyên huấn luyện số thứ tự ngẫu nhiên Khi chu trình đào tạo lặp lặp lại nhiều lần, cuối mạng nơron học tất mẫu có hiệu Learning rate giá trị khoảng từ đến Chọn giá trị gần khơng, địi hỏi số lượng lớn chu trình huấn luyện Điều làm cho trình huấn luyện chậm Mặt khác, learning rate lớn, trọng số khác độ lệch hàm mục tiêu dao động lớn mạng đạt đến trạng thái mà việc huấn luyện diễn vơ ích VI Hàm Active Hàm active mạng xác định cách để có đầu neuron từ tập đầu vào dựa thuật toán bakcpropagation Các thuật toán bakcpropagation yêu cầu hàm active để thỏa mãn tính liên tục khả vi Nó yêu cầu cần có hàm active để dễ dàng tính tốn Một số hàm active Sigmoid, Linear, Logarit, Tan, Sin… 6.1 Mơ hình hàm : y = / (1 + Exp(-x)) Hình 6.1: Mơ hình hàm : y = / (1 + Exp(-x)) Hình 8.1: Hàm Gaussian Neighborhood Hình 8.2: Hàm Mexican-Hat Neighborhood IX Lưới Topology Trong đồ lớp Kohonen Layer lưới topology quy định cụ thể xếp nơron lưới hai chiều tạo thành lớp Hàm Neighborhood áp dụng topology Có lưới Topology hay dùng hình lục giác hình chữ nhật Hình 9.1: Rectangular Topology X Hình 9.2: Hexagonal Topology Một số hình dạng lớp Kohonen NeuronNetwork hỗ trợ hàng cột vo trịn Tính dùng để tạo lớp Kohonen với hình dạng khác Hình 10.1: Dạng phẳng Hình 10.4: Dạng hình trụ XI Hình 10.2: Dạng đường thẳng Hình 10.3:Dạng hình vịng Hình 10.5:Dạng hình xuyến Thiết kế mạng Nơron Thiết kế mạng nơron nhân tạo cho ứng dụng cụ thể liên quan đến việc lựa chọn loại mạng, tìm số thích hợp lớp ẩn, phương pháp thích hợp để khởi tạo trọng số, thuật tốn học thích hợp, đào tạo, tỷ lệ học tập số lượng mẫu đào tạo để sử dụng Hầu hết thông số phụ thuộc vào ứng dụng mà mạng nơron thiết kế Dưới số hướng dẫn chung thiết kế mạng nơrron: 11.1 Số lượng lớp ẩn (trong mạng Backpropagation) Một mạng lưới Backpropagation khơng có lớp ẩn khơng thể thực phân loại khơng tuyến tính Vì vậy, lớp ẩn phải cho mạng lưới backpropagation Hơn nữa, toán học chứng minh mạng lưới backpropagation với lớp ẩn đào tạo phù hợp, dùng để xấp xỉ hàm Vì vậy, lớp ẩn lựa chọn tốt hầu hết trường hợp 10 Có nhiều lớp ẩn tăng tốc trình học tập mạng đào tạo phù hợp xác với mẫu đào tạo không thực tốt liệu thử nghiệm Hiệu ứng gọi overtraining nơi mạng lưới huấn luyện có xu hướng ghi nhớ mẫu huấn luyện thay học tập chúng Mạng neurol ban đầu Khởi tạo trọng số liên kết nơron có ảnh hưởng lớn tới việc đào tạo tốc độ xác định hiệu đào tạo Thông thường, trọng số khởi tạo với giá trị ngẫu nhiên từ - 0,5 đến +0,5 (giá trị cao có xu hướng kết khu vực bão hòa sau kích hoạt, giá trị ban đầu nhỏ giá trị gần không) Mạng nơron thực trình khởi tạo module pluggable Tuỳ chỉnh thuật tốn khởi tạo cắm vào cách thực Initializer giao diện Số mẫu huấn luyện Quyết định để mẫu đại diện cho chức huấn luyện thực tế tốt Thông thường, lỗi học tăng so với gia tăng kích thước tập huấn luyện, đồng thời ta nhận thấy giảm lỗi mạng thực tốt liệu thử nghiệm Một mối quan hệ kích thước mạng số lượng tối ưu mẫu đào tạo tìm thấy XII Các lĩnh vực ứng dụng mạng nơron 12.1 Giải toán Mạng trí tuệ nhân tạo (Artificial neural networks) ứng dụng giải toán lĩnh sau: • Bài toán Function Modeling • Bài toán phân loại (Classification Problems) • B tốn xử lý rút trích liệu (Data processing and feature extraction) 12.2 Phạm vi ứng dụng Phạm vi ứng dụng trí tuệ nhân tạo lớn: tập đoàn tài dùng để phân tích dự đốn tài chính, nhận dạng chữ ký, nhận dạng ảnh, nhận dạng chữ viết, nhận dạng sinh trắc học, mơ hình hóa hệ thống động, hệ thống tự động hóa, hệ thống chuyển từ dọng nói chữ viết, bóc tách dự liệu, trí tuệ nhân tạo dùng trị chới máy tính, hệ thống xác định đường giao thông tải, hệ thống máy bay tự lái, etc 11 XIII Cài đặt môi trường phát triển 13.1 Ngơn ngữ lập trình Dự án viết ngơn ngữ MATLAB ngơn ngữ bậc cao, tích hợp khả tính tốn, hình ảnh hóa, lập trình mơi trường dễ sử dụng, vấn đề giải pháp trình bày lời thích tốn học Thường MATLAB dùng cho: • Tốn điện tốn • Phát triển thuật tốn • Dựng mơ hình, giả lập, tạo ngun mẫu • Phân tích, khám phám hình ảnh hóa liệu • Đồ họa khoa học kỹ thuật 13.2 Công cụ phát triển Sử dụng công cụ phát triển MATLAB: https://www.mathworks.com/products/matlab.html 13.3 NeuronNetwork.Core.Initializers namespace Có nhiều phương thức khởi tạo cho mạng như: ConstantFunction, NGuyenWidrowFunction, ZeroFunction, RandomFunction Norma lizedRandomFunction mô tả namespace 13.4 NeuronNetwork.Core.LearningRateFunctions namespace Namespace chứa hàm dùng cho Learning rate như: HyperbolicFunction, ExponentialFunction LinearFunction 13.5 NeuronNetwork.Core.BackPropagation namespace • ActivationNeuron : nơron mạng lan truyền ngược • BackpropagationSynapse : Các kết nối hai activation neurons • ActivationLayer : lớp tổng qt hóa activation neurons • BackpropagationConnector : tập BackpropagationSynapses kết nối hai activation layers • BackpropagationNetwork : Một mạng lan truyền ngược • LinearLayer, LogarithmLayer, SigmoidLayer, SineLayer TanhLayer thừa kế 12 lớp ActivationLayer để triển khai thể hiên tương ứng với hàm activation functions 13.6 NeuronNetwork.Core.SOM namespace • PositionNeuron : nơron a Kohonen network • KohonenSynapse : Liên kết nơron PositionNeuron • KohonenLayer : layer PositionNeurons • KohonenConnector : tập hợp KohonenSynapses liên kết Kohonen Layers • KohonenNetwork : thể Self-Organizing Map • LatticeTopology : định dạng lưới lattice topology Hexagonal hay Rectangular • INeighborhoodFunction : Interface biểu diễn neighborhood function 13.7 NeuronNetwork.Core.SOM.NeighborhoodFunctions namespace • Namespace bao gôm class sau Gaussian Function Mexican HatFunction XIV Các đoạn code sử dụng 14.1 Tiền xử lý ảnh • Đọc ảnh chuyển mức nhị phân Ảnh có tên: Training.Bmp Đọc ảnh: I=imread(Training bmp); Hiển thị ảnh: Imshow(I) 13 Hình 14.1: Training.bmp • Chuyến ảnh mức xám: Igray=rgb2gray(I); Hiển thị ảnh: Imshow(I) Hình 14.2: I.bmp • Chuyển hình mức xám mức nhị phân: Ibw=im2bw(Igray, graythresh(Igray)); Hiển thị hình: Imshow(Ibw) 14 Hình 14.3: Ibw.bmp • Xác định cạnh: Iedge=edge(uint8(Ibw)); Hiển thị ảnh: imshow(ledge) Hình 14.4: ledge.bmp • Tăng gấp đơi cạnh: Tạo biến cấu trúc se 2×2 se=strel('square', 2); Nới rộng biên: Jedge2mindilate(ledge, se); Hiển thị ảnh: Imshow(Tedge2) 15

Ngày đăng: 20/09/2023, 15:24

w