Máy tính CNN kiến trúc và thuật toán
Tóm tắt
Bài viết này giới thiệu, phát triển rộng rãi những kiến thức cơ bản về kiến trúc và thuật
toán xử lí của máy tính CNN-UM. Bài viết này gồm 04 phần: Phần đặt vấn đề nói lên nhu cầu
một hệ tính toán mới đáp ứng các bài toán tính toán lớn hiện nay là máy tính PC hiện nay không
giải quyết được. Phần 2 nêu lên những kiến trúc cơ bản của hệ CNN để có thể thực thi được
những tác vụ theo yêu cầu. Phần 3 nêu những thuật toán và những bài toán ứng dụng đã triển
khai trên máy tính CNN-UM. Phần 4 nêu những tiềm năng, sự phát triển và các thách thức trong
tương lai.
Summary
This paper has the purpose introducing and expanding the basic knowledge of architect
and processing algorithm of CNN Universal Machine (CNN-UM). It consists of 4 parts:
Introduction, Part 2 gives the more detail of structure inside CNN chip. Part 3 introduces the
examples of CNN application (images processing and solving Partial Differential Equation). Part
4 give a trend of development and application of CNN in the future. The conclusion explains the
studies and research CNN scene in Vietnam and over the world.
7 trang |
Chia sẻ: dntpro1256 | Lượt xem: 863 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Máy tính CNN kiến trúc và thuật toán, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tạp chí Khoa học & Công nghệ - Số 1(49)/năm 2009 Kĩ thuật – Công nghệ
1
MÁY TÍNH CNN KIẾN TRÚC VÀ THUẬT TOÁN
Vũ Đức Thái - Đàm Thanh Phương (Khoa Công nghệ thông tin – ĐH Thái Nguyên),
Phạm Thượng Cát (Viện Công nghệ thông tin -Viện KH&CN Việt Nam)
1. Đặt vấn đề
Trong nhiều vấn đề khoa học, kĩ thuật hiện nay cần tốc độ tính toán nhanh, khối lượng
tính toán lớn. Tốc độ máy tính hiện nay đã đạt gần tới giới hạn vật lí về kiến trúc mạch (hạn chế
bởi trở kháng, nhiễu của vi mạch), dù các chíp đã được cải tiến không ngừng nhưng cũng không
đáp ứng được những bài toán tính toán phức tạp. Con người mong muốn có thế hệ máy tính thông
minh có khả năng xử lí nhiều dạng dữ liệu như khả năng của sinh vật vẫn xử lí trong cuộc sống.
Cùng một thời điểm, chúng ta có thể vừa nhìn, vừa nghe, vừa nói, vừa suy nghĩ. Nghĩa là xử lí
nhiều dạng dữ liệu khác nhau với tốc độ rất nhanh trong cuộc sống thực.
Người ta đã nghiên cứu những khả năng xử lí của hệ thần kinh của các cơ thể sống (để có
thể mô hình hóa cơ chế xử lí này trên máy tính), đã phát hiện ra tiến trình xử lí của các nơron
thần kinh vừa tương tác, vừa lan truyền, vừa xử lí cục bộ từng cấp tùy theo vị trí, khả năng của
các tế bào. Do vậy, một tác vụ lớn được phân cấp xử lí cho nhiều nơron đồng thời trên toàn hệ
thần kinh, từ nơi nhận cảm giác đến thần kinh trung ương. Dữ liệu đưa vào xử lí của thế giới tự
nhiên vô cùng phong phú, phức tạp có dạng luồng thông tin động thay đổi theo thời gian thực
(các hình ảnh ta quan sát, âm thanh ta nghe được...) [1]. Bộ não đồng thời xử lí một cách độc lập
cho từng loại tín hiệu vào và trả lời bằng các cư xử tương ứng thông qua các phản xạ không điều
kiện và có điều kiện (khi học sinh trả lời câu hỏi kiểm tra của thầy cô giáo, đồng thời phản xạ
chớp mắt khi có hạt bụi bay vào mắt).
Thông qua quá trình xử lí, các nơron còn tích lũy được kinh nghiệm cho việc xử lí lần
sau, do vậy, trải qua nhiều lần luyện tập các nơron còn có khả năng nâng cao hiệu năng xử lí hay
nói cách khác hệ xử lí có khả năng "học".
Để máy tính xử lí được các dạng dữ liệu tự nhiên (âm thanh, hình ảnh, cảm giác...) cần
phải có một kiến trúc đặc biệt giống như cấu trúc của hệ thần kinh. Với khả năng xử lí tuần tự
của máy PC hiện nay cho dù có tốc độ rất cao cũng không thể xử lí kịp thời và không đáp ứng
được trong các tác vụ điều khiển. Do vậy, muốn có một hệ xử lí nhanh, đa luồng cần có một hệ
xử lí song song đồng thời của nhiều chíp xử lí như hệ thần kinh của cơ thể sống.
Công nghệ mạng nơron tế bào CNN (Cenllular Neural Networks) đã được các nhà khoa
học Mỹ và Hungary phát minh ra vào năm 1988 có tốc độ xử lí của một tế bào là 1012 phép
tính/giây, cả hệ có khoảng 16 000 CPU xử lí đồng thời. Đây là bước đột phá về cấu trúc của
CNN là các CPU song song được kết nối thành mạng tích hợp trong một chip [2,3].
2. Kiến trúc của máy tính CNN -UM (CNN - Universal Machine)
Mô hình CNN là một cấu trúc lí tưởng cho một mảng tính toán analog lập trình được. Với
mảng lớn các chíp xử lí 2D, 3D cũng chỉ cần biểu diễn bởi tập các trọng số (A,B,z). Hiện nay đã
có hàng trăm mẫu trong thư viện của CNN [2,3,4].
Hình 1 mô tả cấu trúc một hệ CNN điển hình. Các tế bào được điều khiển bởi khối
GAPU nó là một khối chứa các phần tử analog và lô gic (gọi là analogic). GAPU bao gồm thanh
ghi lệnh analog (APR) chứa nhiều lệnh analog chính là các mẫu (template); thanh ghi chương
trình logic (LPR) chứa các hàm lô gic cục bộ của mỗi tế bào. Tiến trình xử lí được điều khiển bởi
các chuyển mạch (switch) cục bộ. Các cấu hình xử lí được lưu trong thanh ghi cấu hình chuyển
Tạp chí Khoa học & Công nghệ - Số 1(49)/năm 2009 Kĩ thuật – Công nghệ
2
mạch (SCR). Trình tự thực hiện các lệnh lôgic được lưu trong khối điều khiển analog và logic
toàn cục (GACU) [6].
Hình 1. Cấu trúc của một hệ CNN
Phần lõi của CNN chứa các phần tử analog và logic, xung quanh có 5 khối ngoại vi cục
bộ liên kết giữa các tế bào. Phần tử điều khiển và truyền thông cục bộ nhận lệnh từ SCR và điều
khiển các chuyển mạch đồng thời điều khiển đầu vào/ra. Các khối LLM và LAM có thể nhận,
gửi tín hiệu trực tiếp không cần qua khối GAPU; các khối LAOU và LLU lưu giá trị analog và
logic cục bộ, là các giá trị analog và logic trung gian nhằm làm giảm nhiều thao tác tính toán
toàn cục trong CNN. Khối SCR và LPR điều khiển các đầu ra riêng lẻ. GAPU có hai chế độ xử lí
analog (tốc độ cao cho xử lí cục bộ, tốc độ thấp cho truyền nhận dữ liệu) và xử lí logic.
2.1. Đặc trưng về cơ chế hoạt động của CNN -UM
- Thay đổi trạng thái theo thời gian quá độ của mạch điện (rất nhanh cỡ micro giây).
- Trạng thái của mỗi tế bào biến đổi theo thời gian là tín hiệu điều khiển đưa ra cho các
hệ thứ cấp thực thi các tác vụ. So sánh với máy tính PC ta thấy những điểm khác cơ bản của
CNN và máy PC (H.2):
Hình 2. So sánh giữa máy tính PC và CNN-UM
- Mỗi đầu vào được một tế bào xử lí và đưa ra kết quả, như vậy mảng các tế bào tham
gia xử lí đồng thời cho mảng tín hiệu vào. Ngoài quá trình xử lí, các tế bào còn có quá trình
truyền thông tin cho nhau từ đầu mảng đến cuối mảng trên toàn hệ CNN, như vậy hệ CNN còn
có tính năng như hệ thần kinh. Sau mỗi xử lí, trạng thái của tế bào được thay đổi do có sự liên
kết với các tế bào xung quanh nhận được tín hiệu hồi tiếp trở lại, làm cho toàn hệ luôn ở trạng
thái động (dynamic). Quá trình xử lí trên chỉ diễn ra trong thời gian quá độ của mạch điện cỡ
nanô giây đến micro giây. Nếu hệ CNN có kích thước 128x128 thì có thể có khoảng 16.000 tín
hiệu được xử lí đồng thời. Tín hiệu vào cho mỗi tế bào có thể là tín hiệu tương tự hoặc tín hiệu số
(do phần ghép nối của mỗi tế bào cho phép nhận cả hai loại tín hiệu này). Tùy từng loại dữ liệu mà
ta có thể thiết kế quá trình xử lí tương ứng cho hệ CNN. Thao tác xử lí cho mỗi tín hiệu thông tin
Tạp chí Khoa học & Công nghệ - Số 1(49)/năm 2009 Kĩ thuật – Công nghệ
3
vào như thao tác xử lí cho từng điểm ảnh trong một ảnh vào, như vậy cả hệ CNN có thể xử lí cho
luồng thông tin vào giống như bài toán xử lí ảnh cho từng pixel. Hình 3 mô tả hiện tượng liên kết
và trạng thái mạch điện của một tế bào trong hệ CNN. Điện áp uij là điện áp vào; điện áp xij là điện
áp trạng thái; điện áp yij là điện áp ra. A(ij;kl) và B(ij;kl) là điện dẫn liên kết giữa tế bào C(i,j) và
các tế bào láng giềng của nó.
Hình 3. Cấu trúc bên trong và sự liên kết của một tế bào
- Phương trình trạng thái điện áp của tế bào C(i,j) như sau:
ij
jiSlkC
kl
jiSlkC
klij
ij
zulkjiBylkjiAx
Rt
x
C
rr ),(),(),(),(
),;,(),;,(
1
(1)
trong đó: C, R là điện dung và điện trở của mạch. A, B là điện dẫn hồi tiếp, điện dẫn vào tổng hợp
từ các tế bào láng giềng, z là dòng điện ngưỡng. Điện áp đầu ra y(i,j) được tính theo công thức:
||||)( 1x
2
1
1x
2
1
xfy ijijijij (2)
Đặc trưng cơ bản của CNN là điện áp ra có dạng hàm tuyến tính từng đoạn (piecewise
linear function) có dạng:
3. Các thuật toán của CNN
Chương trình xử lí trong CNN được thực hiện thông qua các lệnh (template - mẫu). Mỗi
lệnh ứng với một template. Trong thư viện của CNN có các template cơ bản và ngày càng được
bổ sung phong phú hơn. Người lập trình còn có thể tự tìm cho mỗi bài toán những template đặc
trưng tùy theo yêu cầu xử lí. Khi xử lí bài toàn, chúng ta phải xây dựng mô hình toán học cho bài
toán và tìm các template sau đó cho thực thi với các phép xử lí analogic.
3.1 Ví dụ về bài toán xử lí ảnh: Nhập vào một ảnh đen trắng, tìm các điểm thay đổi độ
xám (màu trắng thành đen hoặc màu đen thành trắng so với điểm trước nó) trên ảnh vào.
Để xử lí bài toán trên ta có các tác vụ CNN:
Tạp chí Khoa học & Công nghệ - Số 1(49)/năm 2009 Kĩ thuật – Công nghệ
4
- Nạp ảnh.
- Chạy Tem1.
- Chạy Tem2.
- Thực hiện phép OR với hai ảnh.
- Đưa ra kết quả.
Lưu đồ thực hiện trên CNN như hình 4:
Hình 4. Lưu đồ bài toán xử lý ảnh
Nếu gọi các điểm trắng là 0 điểm đen là 1, ta có các template của bài toán xử lí ảnh trên:
- TEM1:
000
020
000
A
000
022
000
B z= -15
- TEM2:
000
020
000
A
000
220
000
B z= -15
Mã chương trình AMC:
1. LOADTEM >FF80,APR1 ; Nạp mẫu TEM1
2. LOADTEM >FF60,APR2 ; Nạp mẫu TEM2
3. COPY A_MC, > FF40, LAM1 ; Copy ảnh từ bộ nhớ vào chip
4. RUNTEM APR1, LAM1, LAM1, LLM1 ; Chạy TEM1
5. RUNTEM APR2, LAM1, LAM1, LLM2 ; Chạy TEM2
6. RUNLOG OR, LLM1, LLM2,LLM3 ; Chạy toán tử logic OR
7. COPY L_C2M, LLM3, >FF00 ; Copy ảnh từ chip sang bộ nhớ
Bước 1: Nạp mẫu TEM1 (cấu hình của các ngắt trong tế bào cho các lệnh trên như hình 5):
Tạp chí Khoa học & Công nghệ - Số 1(49)/năm 2009 Kĩ thuật – Công nghệ
5
1). Mẫu TEM1 được nạp vào hai tụ Cu và Cx qua hai ngắt sw2, sw1
2). Tụ Cx phóng điện, dòng điện chạy trong mạch nạp vào các phần tử
đến khi ổn định qua ngắt sw0 (thực hiện quá trình quá độ trong mạch)
3). Nạp LAM2 vào LLM1 qua ngắt sw4
Hình 5. Quá trình nạp TEM1 (1,2,3)
(Quá trình nạp TEM2 cũng thực hiện tương tự các bước (a,b,c), mẫu TEM2 được đưa vào
LLM2)
Bước 2: Thực hiện phép OR với hai TEM1, TEM2
Bước 3: Đưa ra kết quả: Hai mẫu TEM1, TEM2 được xử lí qua phép OR sau đó đưa kết
quả ra LLM3.
Hình 6. Nạp kết quả vào LLM3
3.2. Ví dụ về giải phương trình vi phân đạo hàm riêng
Mô hình dòng chảy một chiều trong kênh dẫn nước được mô tả bằng hệ phương trình đạo
hàm riêng Saint venant có hai biến vận tốc dòng chảy Q(x,t) (đơn vị m3/s) và độ cao mực nước
h(x,t) (đơn vị m). Người ta đo số liệu tại một số vị trí tại một số thời điểm. Dựa trên việc giải hệ
phương trình ta có thể xác định giá trị Q, h tại những điểm khác trong miền không gian (những
vị trí không đo được) và thời điểm nào đó trong miền thời gian [8].
( , ) ( , )S x t Q x t
q
t x
2( , )
[ ]
( , ) ( , ) ( , )( , )
( , ) ( , ) ( , ) (
( , )
q
Q x t
Q x t h x t Q x tS x t
gS x t gIS x t gJS x t k q
t x x S x t
Vì bài toán có 2 biến hàm và là hàm hai biến, ta cần xây dựng 2 lớp CNN 1D. Sau khi mô
hình hóa theo dạng của CNN chúng ta có các template cho bài toán như sau:
Mẫu trên lớp h:
Tạp chí Khoa học & Công nghệ - Số 1(49)/năm 2009 Kĩ thuật – Công nghệ
6
Ch = 1; Rh=1 ; ][
xb2
1
0
xb2
1
AQh ; A
h
= [0 1 0]; ][
b
q
B ih 010 ; z = 0.
Mẫu trên lớp Q
CQ = 1; RQ =1; ][
1i
1i
1i
1iQ
xhb2
Q
0
xhb2
Q
A ; ])([
x2
gbh
JIgb
x2
gbh
A iihQ
B
Q
= kqqi[ 0 1 0] ; z=0;
Thuật toán được mô phỏng trên Matlab có kết quả:
a) Giá trị của Q b) Giá trị của h
Hình 7. Kết quả giải phương trình Saint venan
4. Ứng dụng và sự phát triển của CNN
Với những tính năng đặc biệt CNN đã được áp dụng vào nhiều lĩnh vực: chẩn đoán các
triệu chứng trong cơ thể con người; điều khiển rô bốt biết di chuyển. Nhiều bài toán yêu cầu xử lí
với chế độ thời gian thực đã được thực hiện. Một số dạng ứng dụng gần đâylà [7]:
- Chụp ảnh phân tích tia lửa điện (20000 ảnh/giây).
- Theo dõi đa mục tiêu.
- Hệ thống an toàn trên ô tô.
Về mặt lí thuyết có các hướng phát triển:
- Xây dựng tập mẫu và các chương trình đảm bảo tính ổn định.
- Phân loại các mẫu trong sự truyền sóng không gian - thời gian.
- Nghiên cứu các thuật toán liên quan đến phương trình vi phân đạo hàm riêng và
các mẫu cho CNN đa lớp.
- Nghiên cứu độ phức tạp tính toán, thuật toán cho máy tính sóng tế bào tương tự-
logic trong việc xử lí luồng dữ liệu.
5. Kết luận
Tuy mới ra đời nhưng CNN có nhiều tiềm năng ứng dụng trong tương lai với những bài
toán mà hiện nay máy PC không thể giải quyết được. Bài báo chỉ nêu được một số nét khái quát
có tính giới thiệu về máy tính tương tự CNN. Hiện nay, CNN mới được tập trung nghiên cứu tại
một số nước (Italia, Hungary, Tây Ban Nha, Thổ Nhĩ Kì, Mỹ, Hàn Quốc, Nhật Bản...).
Tại Việt Nam, CNN mới có một số nhóm nghiên cứu tại Viện Công nghệ thông tin - Viện
KH&CN Việt Nam; ĐH Thái Nguyên, ĐH Bách khoa Hà Nội. Trong tương lai cần sự quan tâm,
Tạp chí Khoa học & Công nghệ - Số 1(49)/năm 2009 Kĩ thuật – Công nghệ
7
và một lực lượng lớn các nhà nghiên cứu để tiếp cận với trình độ thế giới và phát huy khả năng
ứng dụng tại Việt Nam
Tóm tắt
Bài viết này giới thiệu, phát triển rộng rãi những kiến thức cơ bản về kiến trúc và thuật
toán xử lí của máy tính CNN-UM. Bài viết này gồm 04 phần: Phần đặt vấn đề nói lên nhu cầu
một hệ tính toán mới đáp ứng các bài toán tính toán lớn hiện nay là máy tính PC hiện nay không
giải quyết được. Phần 2 nêu lên những kiến trúc cơ bản của hệ CNN để có thể thực thi được
những tác vụ theo yêu cầu. Phần 3 nêu những thuật toán và những bài toán ứng dụng đã triển
khai trên máy tính CNN-UM. Phần 4 nêu những tiềm năng, sự phát triển và các thách thức trong
tương lai.
Summary
This paper has the purpose introducing and expanding the basic knowledge of architect
and processing algorithm of CNN Universal Machine (CNN-UM). It consists of 4 parts:
Introduction, Part 2 gives the more detail of structure inside CNN chip. Part 3 introduces the
examples of CNN application (images processing and solving Partial Differential Equation). Part
4 give a trend of development and application of CNN in the future. The conclusion explains the
studies and research CNN scene in Vietnam and over the world.
Tài liệu tham khảo
[1] V.D. Thai, P.T. Cat, "Solving Saint venant Equation Describing an Open Hydraulic Channel
Employing Cellular Neural Network" CISA 09.
[2]. Leon O. Chua and L. Yang (1998), "Cellular Neural Networks: Theory", IEEE Trans.
Circuits Syst. Vol.35.
[3]. Leon O. Chua and L. Yang (1998), "Cellular Neural Networks: Application", IEEE Trans.
Circuits Syst. Vol.35.
[4]. Tibo Kozek, Leo O. Chua, Tamás Roska, Dietrich Wolf, Ronald Tetzlaff, Frank Puffer and
Ka’roly Lots (1995). “Simulating Nonlinear Waves and Partial Differential Equatios via CNN – Part II:
Typical Examples” IEEE Trans. Circuits Syst. Vol.42, NO 10.
[5]. Tamás Roska (2003), "Computational and Computer complexity of analogic cellular wave
computers" Journal of Circuits Sysem and Computer Vol. 12 No. 4.
[6]. Tamás Roska (2005), "Cellular Wave Computers for Brain-Like Spatial-Temporal
SensoryComputing" IEEE Circuits and System Magazine Second quarter.
[7] Tamás Roska, Leon O. Chua (2003), "The CNN Universal Machine: 10 years later" Journal
of Circuit, Systems, and Computer, Vol. 12, No. 4. 377-388.
[8]. Tamás Roska, Leo O. Chua, Dietrich Wolf, Tibo Kozek, Ronald Tetzlaff and Frank Puffer
(1995), “Simulating Nonlinear Waves and Partial Differential Equatinos via CNN – Part I: Basic
Techniques” IEEE Trans. Circuits Syst. Vol.42, NO 10.
Các file đính kèm theo tài liệu này:
- brief_1008_9489_9_6773_2053108.pdf