Bài tập lớn Bài báo cáo bài tập lớn bài thực Hành Nhóm môn Trí tuệ nhân tạo bài tập lớn môn trí tuệ nhân tạo Ứng dung mạng CNN trong bài toán phân loại hoa quả Ứng dụng mạng CNN trong bài toán phân loại hoa quả
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN ======***====== BÀI TẬP LỚN: TRÍ TUỆ NHÂN TẠO Đề tài: Tìm hiểu mạng CNN ứng dụng phân loại hoa LỜI CẢM ƠN Chúng em xin chân thành cảm ơn thầy cô trường Đại học Công Nghiệp Hà Nội, đặc biệt thầy cô mơn Hệ thống thơng tin, tận tình dạy dỗ, giúp đỡ tạo điều kiện tốt cho em suốt quãng thời gian em theo học trường, để em hồn thành đề tài Chúng em tỏ lòng biết ơn sâu sắc với TS Lê Thị Thuỷ, người tận tình hướng dẫn khoa học giúp đỡ, bảo em suốt q trình nghiên cứu hồn thành báo cáo Tôi xin chân thành cảm ơn bạn học sinh viên khóa 14 trường Đại học Cơng Nghiệp Hà Nội giúp đỡ tơi q trình theo học trường, giúp đỡ thực đề tài Xin trân trọng cảm ơn! MỤC LỤC CHƯƠNG .1 TỔNG QUAN VỀ MẠNG NƠ RON .1 VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP 1.1 Nơ ron nhân tạo .1 1.1.1 Lịch sử nơ ron nhân tạo 1.1.2 Cấu tạo trình xử lý nơ ron sinh học 1.1.3 Cấu tạo trình xử lý nơ ron nhân tạo 1.1.4 Các mơ hình hàm kích hoạt mạng nơ ron nhân tạo .5 1.2 Mạng nơ ron tích chập 1.2.1 Khái niệm mạng nơ ron tích chập 1.2.2 Mơ hình mạng nơ ron tích chập 1.2.3 Xây dựng mạng nơ ron tích chập CHƯƠNG 16 ỨNG DỤNG PHÂN LOẠI HOA QUẢ .16 2.1.Tạo tập liệu .16 2.2 Các bước thực .17 2.2.1:Kết nối Google Colaboratory với drive .17 2.2.2: Import thư viện cần thiết cho trình training .17 2.2.3: Xem thử ảnh tập liệu 17 2.2.4 Train tập liệu 18 2.2.5 Lưu ảnh vào X nhãn vào y .19 2.2.6 Lưu X y thành file.pickle vào drive 19 2.2.7 Import thư viện cần thiết cho trình tạo model CNN 20 2.2.8 Load X y từ file pickle drive kiểm tra .20 2.2.9 Tiến hành mã hoá nhãn y thuật toán one-hot 20 2.2.10 Tiến hành xây dựng mạng CNN phục vụ trình phân loại 21 2.3 Kết 23 TÀI LIỆU THAM KHẢO .27 CHƯƠNG TỔNG QUAN VỀ MẠNG NƠ RON VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP 1.1 Nơ ron nhân tạo 1.1.1 Lịch sử nơ ron nhân tạo Vào năm 1943, nhà thần kinh học Warren McCulloch nhà toán học Walter Pitts viết sách cách mạng thần kinh hoạt động Và họ thực mô mạng thần kinh đơn giản mạch điện [9] Vào năm 1949, Donald Hebb viết sách Organization of Behavior Điểm nhấn mạng thần kinh sử dụng nhiều tăng cường Vào năm 1959, David Hubel Torsten Wiesel xuất sách Receptive fields of single neurons in the cat’s striate cortex, miêu tả phản ứng tế bào thần kinh thị giác loài mèo, cách loài mèo ghi nhớ nhận diện hình dạng kiến trúc vỏ não Hình 1.1 Hình ảnh thí nghiệm David Hubel Torsten Wiesel mèo [10] Vào năm 1989, Yann LeCun áp dụng thuật toán học cho mạng nơ ron theo kiểu lan truyền ngược vào kiến trúc mạng nơ ron tích chập Fukushima Sau vài năm, LeCun cơng bố LeNet-5 [13] Có thể nói, LeNet-5 mạng nơ ron tích chập sơ khai nhất, nhiên dấu ấn tồn tới ngày nay, thấy thông qua số thành phần thiết yếu mà mạng nơ ron tích chập ngày sử dụng 1.1.2 Cấu tạo trình xử lý nơ ron sinh học Hình 1.2: Hình ảnh nơ ron sinh học [14] Một nơ ron gồm có: thân nơ ron, tua gai thần kinh, sợi trục thần kinh, đó: Thân nơ ron: nơi xử lý tín hiệu đưa vào; Tua gai thần kinh: nơi nhận xung điện vào nơ ron; Sợi trục thần kinh: nơi đưa tín hiệu ngồi sau xử lý nơ ron; Khớp thần kinh: vị trí nằm tua gai thần kinh sợi trục thần kinh, điểm liên kết đầu nơ ron với đầu vào nơ ron khác 1.1.3 Cấu tạo trình xử lý nơ ron nhân tạo Dựa vào cấu tạo nơ ron sinh học, nhà khoa học nghiên cứu lập trình đưa kiến trúc nơ ron nhân tạo: Hình 1.3: Cơng thức nơ ron nhân tạo [41] Mạng nơ ron nhân tạo mơ tả đơn giản lại sau: Hình 1.4: Hình ảnh nơ ron nhân tạo Trong đó: Danh sách đầu vào: Là thuộc tính đầu vào nơ ron Số lượng thuộc tính đầu vào thường nhiều một, liệu thô đầu vào thường vector nhiều chiều, nhiều nơ ron tầng trước kết nối tới nơ ron tầng sau Trọng số liên kết: Các liên kết thể độ mạnh yếu qua giá trị gọi trọng số liên kết Kết hơp với đầu truyền, tín hiệu đến nơ ron nhân tạo khác tính ; Hình 1.5: Hình ảnh vị trí thiên lệch thêm vào thực tế Hàm tổng: Tổng tích đầu vào với trọng số liên kết mơ khớp kết nối Sau qua hàm tính tổng để tính giá trị trước đưa vào hàm truyền; Thiên lệch (b): Độ lệch đưa vào sau khi tính tốn xong hàm tổng, tạo giá trị cuối trước đưa vào hàm truyền Mục đích việc thêm vào thiên lệch nhằm dịch chuyển chức hàm kích hoạt sang trái phải, giúp ích mạng huấn luyện Hình ảnh vị trí thiên lệch thêm vào mạng nơ ron thực tế Hình ảnh huấn luyện có khơng có thiên lệch: sánh hiệu hàm kích hoạt RELU hàm kích hoạt sigmoid CNNs Họ thấy mơ hình với RELU cần thời gian lặp đạt tỷ lệ lỗi huấn luyện tương đương Chúng ta thấy kết hình sau: Hình 1.19: So sánh ReLU Sigmoid Như hình trên, đường liền nét mơ hình sử dụng RELU đường đứt nét sử dụng hàm Sigmoid Có thể dễ dàng thấy rằng, RELU cần vịng lặp để đạt tỉ lệ lỗi chấp nhận Do đó, ngày đa số mơ hình CNN gần sử dụng RELU để làm hàm kích hoạt 1.2.3.4 Tầng gộp Tầng gộp giảm kích cỡ hình ảnh sau thực tích chập, giúp giữ lại đặc điểm, tính chất bật ảnh Điều cho phép giảm mức độ tính tốn hình ảnh có kích thước q lớn, đồng thời khơng làm đặc điểm quan trọng ảnh Tuy sử dụng mạng kết nối cục chia sẻ tham số, nhiên số lượng tham số mang nơ ron lớn So với tập liệu tương đối nhỏ, gây tình trạng khớp (overfitting) Vì vậy, mạng nơ ron nhân tạo thường chèn tầng gộp vào mạng Tầng gộp xử lý để giảm dần số lượng tham số nhằm cải thiện thời gian tính tốn mạng nơ ron Tầng gộp áp dụng lấy mẫu xuống cho tầng trước cách sử dụng hàm max Tầng gộp hoạt động độc lập tầng trước Ngồi ra, đặt lượng pixel di chuyển cửa sổ trượt bước nhảy, làm với tầng tích chập Ví dụ, hình sau: 14 Hình 1.20: Ví dụ minh họa đơn giản tầng gộp Ở ví dụ trên, kích thước cửa sổ trượt bước nhảy lần trượt Tại cửa sổ, hàm max lấy giá trị tối đa để đại diện cho giá trị tầng Có hai loại tầng gộp: Nếu kích thước cửa sổ trượt bước nhảy, gộp chung (traditional pooling) Nếu kích thước cửa sổ trượt lớn bước nhảy, gộp nhóm (overlapping pooling) Trong thực tế, mạng nơ ron thường sử dụng kích thước cửa sổ kích thước bước nhảy gộp chung sử dụng kích thước cửa sổ kích thước bước nhảy gộp nhóm, tăng kích cỡ cửa sổ dễ làm đặc tính liệu Ngồi việc gộp sử dụng hàm max, người ta sử dụng hàm khác Ví dụ người ta sử dụng hàm tính trung bình cửa sổ trượt để tính toán giá trị cho tầng tiếp theo, gọi gộp trung bình 1.2.3.5 Tầng kết nối đầy đủ Tầng thứ ba tầng kết nối đầy đủ Tầng giống mạng nơ ron truyền thống: nơ ron tầng trước kết nối với nơ ron tầng tầng cuối đầu Để đưa hình ảnh từ tầng trước vào, ta phải dàn phẳng liệu thành véc tơ nhiều chiều Cuối sử dụng hàm softmax để thực phân loại đối tượng 15