Các thuật toán sử dụng trong thuật toán training

Một phần của tài liệu Nghiên cứu, thiết kế và chế tạo hệ thống gội đầu và massage đầu cho bệnh nhân nằm liệt giường (Trang 40)

CHƯƠNG 3 : HỆ THỐNG CƠ KHÍ

4.4. Các thuật toán sử dụng trong thuật toán training

Lan truyền ngược (Backpropagation) là một từ viết tắt cho "backward propagation of errors" tức là "truyền ngược của sai số", là một phương pháp phổ biến để huấn luyện các mạng thần kinh nhân tạo được sử dụng kết hợp với một phương pháp tối ưu hóa như gradient descent. Phương pháp này tính tốn gradient của hàm tổn thất với tất cả các trọng số có liên quan trong mạng nơ ron đó. Gradient này được đưa vào phương pháp tối ưu hóa, sử dụng nó để cập nhật các trọng số, để cực tiểu hóa hàm tổn thất.

Truyền ngược yêu cầu một đầu ra mong muốn, đã biết cho mỗi giá trị đầu vào để tính tốn gradient hàm tổn thất. Do đó, nó thường được xem là một phương pháp học có giám sát, mặc dù nó cũng được sử dụng trong một số mạng khơng có giám sát như autoencoders. Nó là một tổng quát hóa của quy tắc delta cho các mạng ni tiến đa tầng, có thể thực hiện bằng cách sử dụng quy tắc dây chuyền để tính tốn lặp đi lặp lại các gradient cho mỗi lớp. Truyền ngược yêu cầu các hàm kích hoạt được sử dụng bởi các nơ-ron nhân tạo (hay "nút") khả vi.

Lưu đồ của phương pháp lan truyền ngược như hình 4.7

Xi Dài Bệnh Thốn Net1-1 Net1-2 Net1-3 Net2-1 Net2-2 Net2-3

32

Hình 4.7 Lưu đồ của thuật tốn truyền ngược

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

Hình 5.1 Hệ thống cảm biến

5.2. Hệ thống điện

5.2.1. Giao tiếp với vi điều khiển

Để giao tiếp với vi điều khiển ta giao tiếp qua cổng COM port với tộc độ 115200 baudrate. Tín hiệu gửi qua vi điều khiển là dạng chuổi, chính là góc quay và độ dịch chuyển của các động cơ. Các giá trị điều khiển từ điểm điều khiển này đến tọa độ di chuyển đầu massage khác sau đó được chuyển qua bài toán động học nghịch nhằm tính itốn độ dịch chuyển theo góc quay của 2 động cơ quay và 1 động cơ tịnh

37

tiến theo trục Z. Sở đồ điều khiển hệ thống của robot massage được trình bày trong

hình 5.2. Máy tính quản lý ở mức cao, quản lý 1 vi điều khiển (MCU) thực thi các tác

vụ điều khiển phân cấp với cảm biến, động cơ quay khớp 1 (MCU2-Driver 2), khớp 2 (MCU3-Driver 3) và động cơ tịnh tiến theo trục Z (MCU1-Driver 1).

PC Driver 2 Driver 1 Driver 3 MCU M R-Motor M Z-Motor M L-Motor Sensor

Hình 5.2 Hệ thống truyền điều khiển từ robot massage

Các động cơ được điều khiển bởi một vi điều khiển với vai trò như một Slave, chúng liên kết theo chuẩn SPI với một vi điều khiển có vai trị như một Master như

hình 5.3. Vi điều khiển master truyền thơng với máy tính thơng qua chuẩn RS-232.

MCU Driver 1 - RZ Driver 2 - RR Driver 5 - LR Driver 6 - LL Driver 4 - LZ Driver 3 – RL Motor RZ Motor RR Motor RL Motor LZ Motor LR Motor LL PC

Hình 5.3 Sơ đồ truyền nhận dữ liệu của mạch điều khiển động cơ robot

38

Để chuyển các thông tin dữ liệu từ cảm biến vào máy tính để phân tích, ta sử dụng các mạch giao tiếp với máy tính. Kiểu của giao tiếp phụ thuộc vào đặc tính của tín hiệu. Khi mà mạch giao tiếp được đưa ra, ta phải lựa chọn mạch với khoảng giá trị yêu cầu, độ phân giải, độ tuyến tính và tốc độ như hình 5.4.

Kinect PC MCU Sensor

Hình 5.4 Sơ đồ của thiết bị giao tiếp máy tính với cảm biến

5.2.3. Hệ thống an tồn

Robot massage được thiết kế nhằm tác động lực vào mô tế bào mềm cơ thể người cụ thể là trên đầu người massage. Vì vậy ta cần phải xem xét các đặc tính an tồn để tránh các yếu tố nguy hiểm tác động lên trên người massage. Sơ đồ khối của hệ thống an tồn được trình bày ở hình 5.5. Tốc độ giới hạn, vị trí giới hạn và bộ cảnh báo thời gian được thiết kế trong phần mềm điều khiển robot. Trong trường hợp cụ thể vị trí di chuyển và tốc độ quay được giới hạn trong khoảng an tồn dành cho hoạt động massage. Đặc tính an tồn thứ hai là gắn các cơng tác hành trình trong tất cả các khớp chuyển động của 2 cánh tay robot massage. Ngoài ra giới hạn moment tác động cũng sẽ dừng khẩn cấp chuyển động của robot, các bộ giới hạn này đặt trên các khâu của robot. Ngoài ra, người quản lý hoặc người bệnh nhân cũng có thể dừng hoạt động của robot. Người quản lý Máy tính Mạch điều khiển Hệ thống robot massage Người massage Công tắc dừng Công tắc dừng Phần mềm Tốc độ giới hạn Vị trí giới hạn Bộ định thời cảnh báo Mạch điện Cầu chì Cơng tắc hành trình Cảm biến dịng Cơ khí Giới hạn moment

Hình 5.5 Sơ đồ khối của hệ thống an toàn

39

5.3.1. Cấu trúc hệ thống điều khiển

Hệ thống trí tuệ nhân tạo (AI) sử dụng kết hợp với hệ thống thị giác máy (Machine Vision) được gắn trên hệ thống giường massage dành cho việc xoa bóp bấm huyệt massage tự động, hệ thống camera này được gắn phía trên giường massage cho việc chụp đầu người. Hệ thống trí tuệ nhân tạo dựa trên nền tảng thị giác máy này cho phép biết kích thước của đầu để từ đó đưa ra tiên đốn vị trí các huyệt massage và đường massage cũng như lực tác động bấm của đầu massage trên đầu từng người. Độ chính xác của hệ thống thị giác máy này tùy thuộc vào một số hệ số như tác động ánh sáng, tư thế nằm. Như vậy ta sẽ xác định vị trí huyệt masage, đường massage cũng như lực tác động của đầu massage dựa vào hệ thống thị giác máy tiên đốn dựa trên trí tuệ thơng minh nhân tạo. Ta sẽ xây dựng massage dọc theo đường đi xây dựng trước với vị trí xác định bởi hệ thống trí tuệ nhân tạo. Tuy nhiên nếu ta sử dụng hệ trục tuyệt đối từ ngồi thì cần so sánh giá trị đo và giá trị tuyệt đối. Dành cho điều khiển quỹ đạo, dữ liệu vị trí/lực được so sánh với trường vị trí và lực tác động trên đầu mà giá trị tiến đến được đánh dấu. Mỗi trường vị trí/lực chỉ ra quỹ đạo tham chiếu trên vùng diện tích mà hệ thống trí tuệ nhân tạo có thể xác định. Việc tính tốn quỹ đạo được lập trình trên máy tính gắn trên hệ thống massage này cịn có nhiệm vụ quản lý và giám sát các thiết bị và điều khiển các cánh tay robot massage. Máy tính sẽ ra lệnh cho động cơ DC gắn với cánh tay thông qua bộ truyền bánh đai. Động cơ này có thể di chuyển cánh tay nhanh và chính xác như cách người kỹ thuật viên massage thường làm. Cuối cùng card tín hiệu tương tự sẽ đọc thông tin về tốc độ hệ thống massage và đây cũng chính là tín hiệu vào của bộ điều khiển. Sơ đồ cấu trúc hệ thống điều khiển được chỉ ra như trong

hình 5.6. Ta có 4 tín hiệu vào là: Hệ thống thị giác máy, cảm biến lực, cảm biến lực,

đã mã hóa gia lượng (encoder). Hệ thống điều khiển sẽ cho lệnh động cơ cánh tay robot masage và nhận từ nó vị trí thật sự của hệ thống.

Hệ thống điều khiển Cơ cấu cánh tay Robot Quỹ đạo Massage

Lực tác động Vị trí của đầu

Massage Đầu Massage

Phản hồi lực Encoder Encoder

Hình 5.6 Sơ đồ khối hệ thống điều khiển

Máy tính gắn trên giường masage được xem như là bộ điều khiển trung tâm của hệ thống, nó có chức năng tính tốn, phân tích các thơng số hiện thời và xuất ra tín hiệu điều khiển cho hệ thống. Máy tính chạy trên hệ điều hành Window và được cài đặt Visual Studio C++.net, máy tính làm nhiệm vụ thu thập dữ liệu từ hệ thống thị giác

40

máy, cảm biến lực, cảm biến dòng, các hệ thống thu thập vị trí và vận tốc từ các đã mã hóa encoder để định vị trí/lực của cánh tay robot massage đồng thời gửi dữ liệu truyền lệnh cho vi điều khiển thực hiện những lệnh như điều khiển động cơ nhằm điều khiển chuyển động tịnh tiến tạo lực của đầu massage theo yêu cầu, hoặc cho vi điều khiển xuất tín hiệu điều khiển vận tốc động cơ gắn trên các cánh tay robot [19]. Nói tóm lại

Một phần của tài liệu Nghiên cứu, thiết kế và chế tạo hệ thống gội đầu và massage đầu cho bệnh nhân nằm liệt giường (Trang 40)

Tải bản đầy đủ (PDF)

(68 trang)