đặt vấn đề, nêu lên mục tiêu, phạm vi, đối tượng nghiên cứu và các đóng góp chính của trong đề tài 2 Chương 2: Các mạng nơ ron nhân tạo và ứng dụng trong nhận dạng cây từ hình ảnh: Trình bày về tổng quan chung về mạng nơ ron nhân tạo, các kỹ thuật nhận dạng cây dựa trên hình ảnh và kết luận chương. Chương 3: Phương pháp nhận dạng cây cho phép khai thác đồng thời thông tin về họ, chi và loài: Trình bày về một số kiến thức cơ sở, hàm mất mát phân cấp thích ứng đề xuất, mô hình cơ sở dựa trên mạng ResNet-50 và kết luận chương. Chương 4: Thử nghiệm: Trình bày về CSDL, kết quả thử nghiệm, tích hợp hệ thống nhận dạng cây trên thiết bị di động và kết luận chương. TỔNG QUAN VỀ NHẬN DẠNG CÂY TỪ HÌNH ẢNH 2.1 Tổng quan chung về mạng nơ ron nhân tạo Mạng neuron nhân tạo là một loại mô hình tính toán được lấy cảm hứng từ cấu trúc và hoạt động của các mạng neuron trong não người.
Mạng nơ ron được sử dụng rộng rãi trong nhiều lĩnh vực như nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, dự đoán chuỗi thời gian, tự động lái xe, và nhiều ứng dụng khác. Trong lĩnh vực tài chính, mạng nơ ron nhân tạo hỗ trợ cho quá trình phát triển các quy trình như: giao dịch thuật toán, dự báo chuỗi thời gian, phân loại chứng khoán, mô hình rủi ro tín dụng và xây dựng chỉ báo độc quyền và công cụ phát sinh giá cả. Dưới đây là một số đặc điểm quan trọng của mạng neuron nhân tạo: - Cấu trúc lớp: Mạng nơ ron bao gồm một số lớp (layer) được xếp chồng lên nhau. Có ba lớp chính là lớp đầu vào (input layer), lớp ẩn (hidden layers), và lớp đầu ra (output layer).
Mỗi lớp có một số neuron (nút) và các neuron trong lớp trước đó kết nối với các neuron trong lớp tiếp theo. - Trọng số và bias: Mỗi kết nối giữa các neuron có một trọng số (weight) để điều chỉnh độ quan trọng của tín hiệu đầu vào. Ngoài ra, mỗi neuron có một giá trị bias để điều chỉnh giá trị đầu ra của nó. Trọng số và bias là các tham số cần được tối ưu hóa trong quá trình huấn luyện.
- Hàm kích hoạt (activation function): Hàm kích hoạt được áp dụng sau mỗi neuron để giới hạn giá trị đầu ra của nó. Hàm kích hoạt quyết định xem neuron đó có được kích hoạt (được kích thích) hay không. - Huấn luyện và học tập: Mạng neuron được huấn luyện thông qua việc cung cấp dữ liệu đầu vào và giá trị đầu ra mong muốn (nhãn) để điều chỉnh các trọng số và bias. Quá trình này được thực hiện thông qua các thuật toán tối ưu hóa như Gradient Descent và các biến thể của nó.
- Học có giám sát và học không giám sát: Trong học có giám sát, mạng nơ ron được huấn luyện trên dữ liệu có nhãn để tối ưu hóa hàm mất mát. Trong học không giám sát, mạng nơ ron thường được sử dụng để tìm cấu trúc hoặc biểu diễn dữ liệu mà không cần nhãn. - Đa lớp và mạng nơ ron sâu: Mạng nơ ron đa lớp (multi-layer neural network) và mạng nơ ron sâu (deep neural network) có nhiều lớp ẩn, cho phép mô hình học được các mối quan hệ phức tạp trong dữ liệu.1 Các phương pháp tối ưu hàm mất mát 2. Thuật toán Gradient descent Gradient descent là một thuật toán tối ưu hóa được sử dụng để tìm cực tiểu hoặc cực đại của một hàm số.
Đây là một phương pháp lặp để điều chỉnh các tham số của một mô hình máy học hoặc một hàm mục tiêu khác dựa trên các đạo hàm riêng của hàm số đó. Ý tưởng cơ bản của gradient descent là đi dọc theo đường dốc của hàm số để tìm điểm cực tiểu (hoặc cực đại). Thuật toán này bắt đầu từ một điểm bất kỳ trên hàm số và tiến hành cập nhật vị trí hiện tại dựa trên đạo hàm riêng của hàm số tại điểm 4 đó. Điều này cho phép thuật toán di chuyển theo hướng ngược lại với độ dốc của hàm số, từ đó tiến gần hơn đến điểm cực tiểu.
Ý tưởng thuật toán: Xét các hàm số một biến 𝑓𝑓 ∶ ℝ → ℝ. Giả sử 𝑥𝑥𝑡𝑡 là điểm tìm được sau vòng lặp thứ t và 𝑥𝑥 ∗ là điểm cực tiểu địa phương. Ta cần tìm thuật toán đưa 𝑥𝑥𝑡𝑡 về càng gần 𝑥𝑥 ∗ càng tốt. Ta có các quan sát như sau : Nếu đạo hàm của hàm số tại 𝑥𝑥𝑡𝑡 là dương (𝑓𝑓 ′ (𝑥𝑥𝑡𝑡 ) > 0) thì 𝑥𝑥𝑡𝑡 nằm về bên phải so với 𝑥𝑥 ∗ , và ngược lại.
Để điểm tiếp theo xt +1 gần với 𝑥𝑥 ∗ hơn, ta cần di chuyển 𝑥𝑥𝑡𝑡 về bên trái, tức về phía âm. Nói các khác, ta cần di chuyển 𝑥𝑥𝑡𝑡 ngược dấu với đạo hàm: xt +1= xt + ∆ [2.1] Trong đó : ∆ là một đại lượng ngược dấu với đạo hàm 𝑓𝑓 ′ (𝑥𝑥𝑡𝑡 ) 𝑥𝑥𝑡𝑡 càng xa 𝑥𝑥 ∗ về bên phải thì 𝑓𝑓 ′ (𝑥𝑥𝑡𝑡 ) càng lớn (và ngược lại). Một cách tự nhiên nhất, ta chọn lượng di chuyển ∆ tỉ lệ thuận với −𝑓𝑓 ′ (𝑥𝑥𝑡𝑡 ) Từ hai quan sát trên ta có công thức tổng quát như sau: xt += 1 xt − η f ' ( xt ) [2.2] Trong đó 𝜂𝜂 là một đại lượng được gọi là tốc độ học (learning rate). Dấu trừ thể hiện việc 𝑥𝑥𝑡𝑡 cần đi ngược với đạo hàm 𝑓𝑓 ′ (𝑥𝑥𝑡𝑡 ) 2.
Thuật toán Stochastic Gradient Descent Thuật toán gradient descent còn có một biến thể khác là stochastic gradient descent. Các bước thực của thuật toán Stochastic Gradient Descent như sau: - Bước 1: Khởi tạo giá trị ban đầu của x, thường là ngẫu nhiên hoặc dựa trên kiến thức chuyên gia. - Bước 2: Lặp lại các bước sau cho đến khi đạt được điều kiện dừng (ví dụ: số lần lặp tối đa hoặc sự hội tụ của giá trị hàm mục tiêu). - Bước 3: Chọn một mẫu dữ liệu ngẫu nhiên từ tập dữ liệu huấn luyện, ký hiệu là (xi , yi ), với xi là vector đặc trưng và yi là nhãn tương ứng.
- Bước 4: Tính toán gradient của hàm mục tiêu tại điểm dữ liệu này. Gradient của hàm 𝑓𝑓(𝑥𝑥) tại điểm xi được ký hiệu là ∇𝑓𝑓(𝑥𝑥𝑖𝑖 ). Gradient này đơn giản là vector đạo hàm riêng của hàm f(x) theo từng tham số trong vector x. Ví dụ, nếu x là một vector có n tham số, thì ∇𝑓𝑓(𝑥𝑥𝑖𝑖 ) sẽ là một vector có n chiều.
- Bước 5: Cập nhật x bằng công thức sau: xnew = xold − α * ∇f ( xi ) [2.3] Trong đó: (1) α là tỷ lệ học (learning rate) là một tham số quyết định bước cập nhật của thuật toán. Tỷ lệ học thường là một số dương nhỏ, có thể được lựa chọn trước hoặc thay đổi trong quá trình huấn luyện. 5 (2) ∇f ( xi ) là biểu diễn gradient của hàm mất mát (loss function) f ( xi ) theo các tham số x của mô hình - Bước 6: Quay lại Bước 3 và tiếp tục lặp cho đến khi đạt được điều kiện dừng. Thuật toán Stochastic Gradient Descent có thể làm việc rất nhanh vì nó chỉ tính toán gradient trên một điểm dữ liệu mỗi lần lặp.
Tuy nhiên, nó cũng có thể làm cho quá trình tối ưu hóa không ổn định hơn, do độ biến động ngẫu nhiên của gradient từ các điểm dữ liệu. Mặc dù vậy, Stochastic Gradient Descent thường được sử dụng trong việc huấn luyện các mô hình lớn và phức tạp, nơi Batch Gradient Descent không khả thi do yêu cầu tính toán độ lớn của toàn bộ tập dữ liệu huấn luyện. So sánh thuật toán Gradient Descent và Stochastic Gradient Descent Bảng 2.1 Sự khác nhau giữa SGD và GD Thuật toán Stochastic Gradient Gradient Descent Tiêu chí Descent Dữ liệu đầu vào tính toán gradient trên tính toán gradient của từng mẫu dữ liệu huấn hàm mất mát trên toàn luyện một tại mỗi bước bộ tập dữ liệu huấn cập nhật. Điều này làm luyện ở mỗi bước cập cho nó hiệu quả hơn nhật.
Điều này đòi hỏi trong trường hợp dữ lưu trữ toàn bộ tập dữ liệu lớn, vì nó chỉ cần liệu trong bộ nhớ, điều duyệt qua một mẫu dữ này có thể là vấn đề đối liệu tại mỗi bước. với các tập dữ liệu lớn. Tính ngẫu nhiên sử dụng một mẫu dữ không thực hiện bất kỳ liệu ngẫu nhiên từ tập tính toán ngẫu nhiên dữ liệu huấn luyện ở nào. Nó tính toán mỗi bước.
Điều này có gradient chính xác của nghĩa là gradient được hàm mất mát. ước tính và có sự biến đổi ngẫu nhiên ở mỗi bước, làm cho quá trình tối ưu hóa không đồng đều. Độ chính xác hội tụ nhanh hơn ban đạt được độ chính xác đầu nhưng có thể dao tốt hơn, đặc biệt khi động quanh cực tiểu và tiếp cận cực tiểu. không đạt được độ chính xác cao như GD.
Tuy nhiên, SGD có thể tìm được các cực tiểu 6 cục bộ có lợi cho việc tạo mô hình tổng quan tốt hơn. Sự ổn định không ổn định bằng ổn định hơn và ít bị GD và có thể dao động biến động trong quá trong quá trình học. trình tối ưu hóa. Thiết lập siêu tham số có nhiều siêu tham số không có siêu tham số quan trọng như tốc độ quan trọng để cấu hình học (learning rate), số trong GD.
lượng epoch, và kích thước lô (batch size) cần được điều chỉnh cẩn thận. Thuật toán Stochastic Gradient Descent với Momentum Để giảm thiểu các nhược điểm của Stochastic Gradient Descent, một biến thể được sử dụng là Stochastic Gradient Descent with Momentum (SGDM) hay đơn giản là Momentum. Momentum giúp tăng tốc quá trình tối ưu hóa và giảm độ dao động. Momentum giữ một động lượng (momentum) của quá trình cập nhật trước đó và kết hợp nó với gradient hiện tại để cập nhật tham số.
Công thức cập nhật tham số trong SGDM là: 𝑣𝑣 ← 𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚𝑚 ∗ 𝑣𝑣 − 𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑔𝑔𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 ∗ ∇𝑓𝑓(𝑥𝑥𝑖𝑖 ) [2.4] 𝑥𝑥 ← 𝑥𝑥 + 𝑣𝑣 Trong đó: 𝑣𝑣 là vector động lượng (momentum) được cập nhật tại mỗi bước. momentum là một tham số trong khoảng từ 0 đến 1, quyết định mức độ đóng góp của động lượng trong quá trình cập nhật. 𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 là tỷ lệ học (learning rate) quyết định bước cập nhật. - Momentum giúp làm giảm độ dao động và giúp thuật toán đi nhanh hơn qua các vùng phẳng hoặc địa phương.
Điều này có thể giúp tăng tốc độ hội tụ và đạt được kết quả tốt hơn.2 Hàm kích hoạt (Activation function) Hàm kích hoạt (activation function) là một thành phần quan trọng trong các mạng neuron nhân tạo và học máy. Hàm này được áp dụng sau mỗi tầng để giới hạn giá trị đầu ra của mỗi nơ ron và giúp mô hình học được các mô hình phi tuyến tính.