Phân lớp tuyến tính với Python

Phân lớp tuyến tính với Python

Uniduc JSC - 2020-03-26 20:46:09 | 374 lượt xem

Mục lục

Phân lớp tuyến tính với Python

Ở bài trước, chúng ta đã tìm hiểu về Parameterized Learning và phân lớp tuyến tính. Ở bài này chúng ta sẽ thực hiên motoh phân lớp tuyến tính sử dụng Python. Mục đích của ví dụ này không phải là để chứng minh cách chúng ta đào tạo một mô hình từ đầu đến cuối, mà đơn giản chỉ ra cách chúng ta sẽ khởi tạo một ma trận trọng số W, và sau đó sử dụng các tham số này để phân loại hình ảnh thông qua một sản phẩm chấm đơn giản.
Mục tiêu của chúng tôi ở đây là viết Python sẽ phân loại chính xác một hình ảnh có chứa con chó nào không.

import cv2
import numpy as np

labels = ['dog', 'cat', 'panda']
np.random.seed(2)

W = np.random.randn(3, 3072)
b = np.random.randn(3)

origin = cv2.imread('beagle.png')
image = cv2.resize(origin, (32, 32)).flatten()

scores = W.dot(image) + b

for score, label in zip(scores, labels):
    print(f'[INFO] {label}: {score:.2f}')

cv2.putText(origin, f'Label: {labels[np.argmax(scores)]}',
            (10, 30), cv2.FONT_HERSHEY_COMPLEX, 0.9, (0, 255, 0), 2)

cv2.imshow('Image', origin)
cv2.waitKey(0)

Lưu ý cách lớp "chó" có giá trị ghi điểm lớn nhất, hàm ý rằng lớp chó sẽ được chọn làm dự đoán của phân loại của chúng tôi. Trong thực tế, chúng ta có thể nhìn thấy con chó văn bản chính xác
được vẽ trên hình ảnh đầu vào của chúng tôi trong hình bên dưới.

Một lần nữa, hãy nhớ rằng đây là một ví dụ hoạt động. Chúng ta cố tình thiết lập trạng thái ngẫu nhiên của chúng ta. Tập lệnh Python để tạo các giá trị W và b sẽ dẫn đến phân loại chính xác (bạn có thể thay đổi giá trị để tự mình thấy cách khởi tạo ngẫu nhiên khác nhau sẽ tạo ra các dự đoán đầu ra khác nhau).
Trong thực tế, bạn sẽ không bao giờ khởi tạo các giá trị W và b của mình và cho rằng chúng sẽ cung cấp cho bạn phân loại chính xác mà không có một số loại quá trình học tập. Thay vào đó, khi đào tạo máy của chúng ta học các mô hình từ đầu, chúng ta sẽ cần tối ưu hóa và học W và b thông qua tối ưu hóa thuật toán, chẳng hạn như gradient descent.
Chúng ta sẽ thảo luận tối ưu hóa và gradient descent trong cacs baif tiếp theo, nhưng trong khi đó, chỉ đơn giản là dành thời gian để đảm bảo phân loại tuyến tính tạo phân loại bằng cách lấy dit product giữa ma trận trọng số và điểm dữ liệu đầu vào, sau đó thêm vào bias. Do đó, toàn bộ mô hình của chúng tôi có thể được xác định thông qua hai giá trị: ma trận trọng số và độ lệch
vectơ. Đại diện này không chỉ nhỏ gọn mà còn khá mạnh mẽ khi chúng tôi đào tạo máy
mô hình học tập từ đầu.

Kết luận

Chúng ta đã viết những đoạn code đầu tiên để huấn luyện trong Python. Trong những bài tiếp theo, chúng ta sẽ tìm hiểu sâu về cách tối ưu hóa ma trận trọng số để chúng có thể học dựa trên dữ liệu đầu vào

-------------////--------------------------------------------////------------

GIỚI THIỆU ĐẾN BẠN SẢN PHẨM KHẨU TRANG Y TẾ WAKAMONO KHÁNG VI RÚT LÊN ĐẾN 99% BẠN CÓ THỂ MUA SẢN PHẨM Ở DƯỚI ĐÂY:

Đăng kí nhận tin mới



Đánh giá bài viết

0%

0 Tổng người đánh giá
5
0%
4
0%
3
0%
2
0%
1
0%
THÔNG TIN LIÊN HỆ

Công ty Cổ phần Uniduc

Địa Chỉ: 22 Đường Số 54, Phường Thảo Điền, Quận 2

Hotline: 089 6688 629 (Phòng Kinh Doanh / HTKT)

DĐ: 0903 666 014 (Mr Đức)

Email: [email protected]

Website: https://uniduc.com/vi

 
TỔNG QUAN

Công ty Cổ Phần Uniduc chuyên cung cấp các loại robot phục vụ, Agv Robot, hệ thống tự động. Với kinh nghiệm nghiên cứu lâu năm và đội ngũ kỹ sư năng động sáng tạo. Hi vọng Uniduc là điếm đến công nghệ là nơi khách hàng luôn gửi trọn niềm tin. Chúng tôi sẽ luôn luôn phấn đấu cung cấp cho bạn giải pháp, máy móc, dịch vụ tốt nhất.

WEB SITE CÙNG HỆ THỐNG

ĐĂNG KÝ NHẬN TIN

Nhận bản tin thường xuyên để cập nhật giá bán và các chương trình khuyến mãi.


©2018 - 2021 Copyright Uniduc., Jsc. Sitemap