4.5. Các thuật toán sử dụng trong thuật toán Backpropagation: 4.5.1 Giới thiệu về hàm Sigmoid:
Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện (trained) bởi thuật toán Lan truyền ngược (back-propagation), bởi vì nó dễ lấy đạo hàm, do đó có thể giảm đáng kể tính tốn trong q trình huấn luyện. Hàm này được ứng dụng cho các chương trình ứng dụng mà các đầu ra mong muốn rơi vào khoảng [0,1].
4.5.2 Chuẩn hóa giá trị tại các nốt thần kinh.
Việc này hết sức quan trọng trong phương pháp training này. Chúng ta rất khó để tìm ra độ dốc, sai số, hướng đi nếu các giá trị đầu vào ra chênh lệch quá nhiều hoặc chúng không cùng kiểu dữ liệu.
Ví dụ: anh B đang bị hoa mắt, đau nửa đầu trước, mất ngủ, nặng 69kg, chiều cao 1m70cm, ngang đầu 16.6cm, chiều dài đầu là 22.5cm. Hỏi anh B cần sử dụng bài
Bắt đầu
Chuẩn hóa dữ liệu học Cho ngẫu nhiên trọng số N = 0
Tính giá trị tại các nốt
Đưa giá trị qua hàm SigMoid
Tính tốn các sai số tại từng nốt Cập nhật lại trọng số N < số lần học N = N + 1 Kết thúc
33
Massage nào để giúp anh cải thiện tình trạng sức khỏe? Nếu lấy thơng tin vào là bệnh của anh B, kết hợp với kích thước đầu (cm) sẽ không thể dạy cho một mạng thần kinh hiểu được bài tập của anh B sẽ là như thế nào.
Chính vì thế chuẩn hóa đơn vị là một trong những yêu cầu đầu tiên trong việc training cho mạng thần kinh.
Đó là lý do chính của hàm Sigmoid xuất hiện.
Trong bài toán cho Massage bot, dữ liệu đầu vào của bệnh sẽ là các giá trị:
- 0.1, 0.2, 0.3 … 0,9 tương ứng với các bệnh – hoa mắt, đau nửa đầu trước, mất ngủ. - Chiều ngang đầu/150 – tương ứng với chiều ngang đầu 16.6cm của người dùng. - Chiều dài đầu/100 – tương ứng với chiều dài đầu là 22.5cm của người dùng. Ví dụ: anh B sẽ có các giá trị đầu vào để training là: 0.1; 60/150; 40/100
4.5.3 Tính sai số:
Do truyền ngược sử dụng phương pháp gradient descent, ta cần phải tính đạo hàm của hàm sai số bình phương với các trọng số của mạng. Giả sử có một nơ-ron đầu ra hàm sai số bình phương sẽ là:
E =1
2(t − y)
2 (4.1)
E là sai số bình phương,
t là mục tiêu đàu ra cho huấn luyện mẫu y là đầu ra thực tế của nơ – ron đầu ra.
Hệ số 1
2 ược đưa vào để loại bỏ số mũ khi lấy vi phân. Sau đó, biểu thức này sẽ được nhân với một tỷ lệ học tùy ý, vì vậy sẽ khơng quan trọng nếu một hệ số không đổi được được đưa vào.
Đối với mỗi nơ-ron j , oj đầu ra của nó được định nghĩa như sau: oj = φ(netj) = φ (∑ wkjok
n
k=1
) (4.2)
Đầu vào netj đưa vào một nơ-ron là tổng trọng số của đầu ra ok của các nơ-ron trước đó. Nếu nơ-ron này là lớp đầu tiên nằm sau lớp đầu vào, ok của lớp đầu vào sẽ đơn giản là các đầu vào xk của mạng nơ-ron đó. Số các đơn vị đầu vào đưa vào nơ-ron là n. Biến wij biểu thị trọng số giữa các nơ-ron i và j
34
φ nói chung là phi tuyến và khả vi. Một hàm kích hoạt được ứng dụng phổ biến đó là
hàm lôgit: φ(z) = 1 1 + e−z (4.3) vi phân của nó: dφ dz (z) = φ(z)(1 − φ(z)) (4.4)
4.5.4 Tìm đạo hàm của sai số
Tính tốn đạo hàm riêng của sai số đối với một trọng số wij được thực hiện bằng cách sử dụng quy tắc chuỗi đến 2 lần: ∂E ∂wij = ∂E ∂oj ∂oj ∂netj ∂netj ∂wij (4.5)
Trong cụm cuối cùng nằm bên phải của công thức sau đây, chỉ một số hạng trong tổng
netj phụ thuộc vào wij, do đó:
∂netj ∂wij = ∂ ∂wij(∑ wkjok n k=1 ) = oi (4.6)
Nếu nơ-ron này nằm trong lớp đầu tiên sau khi lớp đầu vào, thì oi sẽ là oi
Đạo hàm của đầu ra của nơ ron j đối với đầu vào của nó đơn giản là đạo hàm riêng của hàm kích hoạt (giả sử ở đây là hàm logistic được sử dụng):
∂oj ∂netj =
∂
∂netjφ(netj) = φ(netj) (1 − φ(netj)) (4.7) Đây là lý do tại sao truyền ngược yêu cầu hàm kích hoạt phải khả vi.
Số hạng đầu tiên sẽ đơn giản để đánh giá nếu nơ-ron này nằm trong lớp đầu ra, bởi vì sau đó oi = y và ∂E ∂oj = ∂E ∂y = ∂ ∂y 1 2(t − y) 2 = y − t (4.8)
Tuy nhiên, nếu j là một lớp bên trong bất kỳ, việc tìm vi phân E đối với oj sẽ ít rõ ràng hơn.
Xem xét E như là hàm của các đầu vào của tất cả các nơ-ron L = u,v,…w nhận đầu vào từ nơ-ron j,
35 ∂E ∂oj = ∑ ( ∂E ∂netj ∂netj ∂oj ) = l∈L ∑ (∂E ∂ol ∂ol ∂netjwjl) l∈L (4.9)
và lấy tổng đạo hàm đối với oj ó thể được tính tốn nếu tất cả các đạo hàm đối với các đầu ra ol của lớp kế tiếp – lớp nằm gần với nơ-ron đàu ra hơn - được biết.
Đặt tất cả chúng với nhau: ∂E ∂oi wij = δjoi (4.10) Với δj = ∂E ∂oj ∂oi ∂netj = { (oj− tj)oj(1 − oj) (∑ δj l∈L wjl) oj(1 − oj) (4.11)
Để cập nhật trọng số wij sử dụng gradient descent, ta phải chọn một tốc độ học, α ự thay đổi trong trọng số, sẽ được thêm vào trọng số cũ, bằng với tích của tốc độ học với gradient, được nhân bởi -1:
∆wij= −α ∂E ∂wij{ −αoi(oj− tj)oj(1 − oj) −αoi(∑ δl l∈L wjl) oj(1 − oj) (4.12)
“-1” được nhân vào để cập nhật hướng cực tiểu, chứ không phải hướng cực đại, của hàm sai số.
4.6 Kết luận
Chúng ứng dụng trí tuệ nhân tạo vào đồ án nhằm xác định được những thông tin mà kỹ thuật viên có kinh nghiệm mới xác định được, những quỹ đạo này rất đa dạng nên khó mà lập trình được cho tất cả các người dùng. Chính vì vậy việc ứng dụng trí tuệ nhân tạo để tiên đoán được quỹ đạo là một điều hết sức cần thiết. Thế nhưng chúng em vẫn cịn rất nhiều thiếu sót về kiến thức cũng như dữ liệu dạy cho mạng thần kinh nhân tạo. Ngoài ra về thuật tốn chúng em cũng khơng đủ thời gian để kiểm nghiệm nhiều thuật toán khác nhau để kiểm tra đánh giá kết quả.
36
CHƯƠNG 5 THIẾT KẾ HỆ THỐNG ĐIỆN - ĐIỀU KHIỂN 5.1. Giới thiệu
Trong phần này hệ thống điện cũng như phần điều khiển sẽ được trình bày. Đối với robot massage mang tính chất robot thì ngồi tầm quan trọng của bộ điều khiển thì cảm biến cũng đóng vai trị quan trọng không kém. Nếu thiếu cảm biến bộ điều khiển sẽ hoạt động mà khơng có tín hiệu đầu vào. Các cảm biến là thiết bị điện tử cảm nhận những thay đổi từ mơi trường bên ngồi và biến đổi thành các tín hiệu điện để điều khiển các thiết bị khác. Cảm biến là một trong ba thành phần cơ bản của hệ thống điều khiển. Trong đề tài này, đối tượng nghiên cứu là hệ thống massage được trang bị với một số lượng lớn cảm biến để xác định vị trí, tốc độ, lực cũng như các cảm biến để xây dựng trường tọa độ biên dạng cần massage. Tất cả các cảm biến này đều được sử dụng để nhận diện môi trường xung quanh và điều khiển hệ thống các động cơ chấp hành. Thêm vào đó hệ thống robot cũng có nhiệm vụ truyền thông với hệ thống điều khiển trung tâm. Với hệ thống đo và cảm biến sử dụng encoder (bộ mã hóa gia lượng) để từ đó xác định vị trí, vận tốc. Hệ thống thị giác máy cho phép nhận diện kích thước tổng quát của đầu người. Tất cả các cảm biến này đều được kết nối với máy tính đóng vai trị như bộ điều khiển được trình bày như hình 5.1.
Kinect PC MCU Limit Switch
Force Sensor M
Encoder