You are on page 1of 81

LỜI CẢM ƠN

Trước tiên, em xin bày tỏ lòng biết ơn tới thầy giáo TS. Ngô Hữu Phúc người
đã từng bước hướng dẫn, giúp đỡ em trong quá trình thực tập và hoàn thiện đồ án tốt
nghiệp.

Em xin chân thành cảm ơn các thầy cô giáo khoa công nghệ thông tin của
trường Học Viện Kỹ Thuật Quân Sự đã dìu dắt, dạy dỗ em cả về kiến thức chuyên
môn và tinh thần học tập độc lập, sáng tạo để em có được những kiến thức thực hiện
đề tài tốt nghiệp của mình.

Cuối cùng xin bày tỏ lòng biết ơn sâu sắc của mình tới gia đình, bạn bè - những
người luôn sát cánh bên em, tạo mọi điệu kiện tốt nhất để em có thể thực hiện đề tài
tốt nghiệp của mình.

Trong quá trình thực tập tốt nghiệp, mặc dù đã cố gắng hết sức tuy nhiên do thời
gian và khả năng có hạn nên em không thể tránh khỏi những thiếu sót. Vì vậy, em rất
mong các thầy cô giáo góp ý và giúp đỡ cho em hoàn thành đồ án tốt nghiệp này.

Một lần nữa em xin chân thành cảm ơn!

Hà Nội, ngày 1 tháng 4 năm 2009

SINHVIÊN

Nguyễn Xuân Trọng

Trang 1
MỤC LỤC

Trang 2
DANH MỤC HÌNH SỬ DỤNG TRONG ĐỀ TÀI

Hình 1.1: Mô hình tiến trình nghiệp vụ hệ thống “Quản lý bán sách”....................................18
Hình 2.1: Sơ đồ phân cấp chức năng hệ thống “Quản lý bán sách”........................................19
Hình 2.2: Sơ đồ luồng dữ liệu mức khung cảnh hệ thống “Quản lý bán sách”........................20
Hình 2.3: Sơ đồ luồng dữ liệu mức 1 hệ thống “Quản lý bán sách”.......................................21
Hình 2.4: Sơ đồ luồng dữ liệu mức 2 chức năng “Đặt hàng”...................................................22
Hình 2.5: Sơ đồ luồng dữ liệu mức 2 chức năng “Quản lý kho”............................................23
Hình 2.6: Sơ đồ luồng dữ liệu mức 2 chức năng “Bán hàng và thu ngân”.............................24
Hình 2.7: Mô hình thực thể mở rộng hệ thống “Quản lý bán sách”.........................................28
Hình 2.8: Mô hình thực thể quan hệ của hệ thống “Quản lý bán sách”..................................32
Hình 3.1: Menu hệ thống “Quản lý bán sách và tối ưu quá trình xuất nhập sách”.................39
Hình 3.2: Chức năng cập nhật sách..........................................................................................40
Hình 3.3: Form cập nhật sách...................................................................................................40
Hình 3.2: Mô hình dữ liệu hệ thống “Quản lý bán sách”........................................................46
Hình 4.1: Đơn vị xử lý (Processing Unit)...............................................................................51
Hình 4.2: Hàm dạng dấu..........................................................................................................52
Hình 4.3: Hàm bước nhị phân.................................................................................................53
Hình 4.4: Hàm sigmoid...........................................................................................................53
Hình 4.5: Mạng nơron truyền thẳng nhiều lớp........................................................................54
Hình 4.6: Mạng hồi quy..........................................................................................................54
Hình 4.7: Mạng truyền thẳng nhiều lớp..................................................................................58

Trang 3
Trang 4
TỔNG QUAN

I. GIỚI THIỆU NHÀ SÁCH CÓ HỆ THỐNG CẦN XÂY DỰNG


Chúng ta đang sống trong kỷ nguyên của sự bùng nổ công nghệ thông tin, của
nền kinh tế tri thức, của sự hội nhập kinh tế quốc tê xâu rộng. Công nghệ được áp
dụng trong mọi lĩnh vực thuộc mọi ngành nghề khác nhau. Nhu cầu trau dồi tri thức là
một tất yếu ngày càng được xã hội quan tâm. Người đọc có thể tìm thấy những kiến
thức mình cần qua thư viện điện tử khổng lồ Internet, sách điện tử, nhưng văn hóa đọc
sách In vẫn không mất đi do sự tiện lợi của nó, nhu cầu đọc sách của mọi tầng lớp
nhân dân ngày càng tăng. Nắm bắt được xu thế đó, Nhà sách sách tự chọn đã cung cấp
nhiều danh mục sách từ bậc tiểu học đến cao học, tài liệu phục vụ nghiên cứu trong
mọi lĩnh vực. Không chỉ là tài liệu trong nước mà còn có sách bản quyền của các nhà
xuất bản nước ngoài.
Đối tượng phục vụ của nhà sách khá đa dạng từ học sinh, sinh viên, giáo viên,
các bác nông dân. Ngoài ra, nhà sách còn cung cấp tài liệu nghiên cứu cho các trường
học, trường đại học, các viện, trung tâm nghiên cứu và các đại lý sách ở các tỉnh lân
cận.
Là một doanh nghiệp kinh doanh, vấn đề sắp xếp hợp lý nguồn nhân lực đã
giúp nhà sách hoạt động kinh doanh một cách có hiệu quả, đáp ứng các nhu cầu giao
dịch ngày càng tăng của bạn đọc gần xa. Cơ cấu tổ chức của nhà sách được mô tả qua
sơ đồ dưới đây:

Ban giám đóc

Bộ phận đặt hàng Bộ phận bán hàng Bộ phận thu ngân Bộ phận thủ kho Bộ phận kế toán

Ban giám đốc: là người trực tiếp điều hành việc kinh doanh, bán hàng cũng
như quản lý các bộ phận của nhà sách.
Bộ phận đặt hàng: làm nhiệm vụ tìm kiếm, đàm phán ký hợp đồng cung cấp
sách từ các nhà xuất bản trong và ngoài nước.

Trang 5
Bộ phận bán hàng: hướng dẫn khách hàng mua được sách cần mua, tư vấn
cho khách về sách, tài liệu trong mọi lĩnh vực mà khách hàng có nhu cầu.
Bộ phận thu ngân: có nhiệm vụ thanh toán tiền và in hóa đơn cho khách hàng,
đồng thời lưu toàn bộ thông tin những mặt hàng bán ra và hóa đơn thanh toán tiền của
khách hàng trong ngày vào máy tính.
Bộ phận kế toán: nhiệu vụ thực hiện các công việc nghiệp vụ về tài chính như
thanh toán trong nước và quốc tế, quản lý thu chi, hạch toán.
Bộ phận thủ kho: làm nhiệm vụ thống kê các mặt hàng nhập xuất, tồn kho.

II. PHÁT BIỂU BÀI TOÁN


Như nói ở trên, số lượng giao dịch với khách hàng của nhà sách ngày càng
tăng, nhà sách cũng đã trang bị hệ thống máy tính với cấu hình đủ mạnh, nhằm nâng
cao hiệu quả trong kinh doanh, tạo sự thuận lợi trong giao dịch với khách hàng, nhưng
bên cạch đó trên máy tính các bộ phận của nhà sách sử dụng các hệ chương trình hoạt
động độc lập chưa có sự kết nối gây ra một số khó khăn:

 Các bộ phận cập nhật dữ liệu trên các hệ chương trình riêng của bộ phận mình
dẫn tới dữ liệu thiếu đông bộ hoặc được cập nhật chậm gây ra sự phụ thuộc,
chậm trễ, có nhiều sai sót.

 Dữ liệu của hệ thống không được chuẩn hóa, nằm trên nhiều file khác nhau gây
lên sự dư thừa thông tin làm cho công việc thống kê cuối ngày gặp rất nhiều
khó khăn.

 Khối lượng dữ liệu ngày càng lớn làm mất nhiều thời gian cho quá trình tìm
kiếm, tổng hợp báo cáo, không đáp ứng được số lượng giao dịch ngày càng
tăng lên của nhà sách.

 Hiện tại, hệ thống chưa có cơ chế bảo mật, an toàn thông tin đến từng nhân
viên và các bộ phận.
 Bên cạnh đó, hệ thống hiện tại mới chỉ đáp ứng nhu cầu quản lý thuần túy
chưa giúp nhiều cho quá trình lập kế hoạch kinh doanh dẫn tới tình trạng nhà
sách vẫn còn tồn kho nhiều sách không bán được, hoặc nhà sách muốn kinh
doanh lọai sách khác nhưng không thể tính trước được mức độ rủi do, cũng như
lợi nhuận thu được, dẫn tới sự thích nghi với thị trường chậm làm mất đi cơ hội
kinh doanh.

Trang 6
III. CHỦNG LOẠI SÁCH CẦN QUAN TÂM
Trong quá trình khảo sát tìm hiểu các chủng loại sách được kinh doanh tại nhà
sách cho bài toán dự báo kinh tế, chúng ta có thể chia làm 2 nhóm:
 Nhóm sách kinh doanh truyền thống (mặt hàng tạo nên thương hiệu của doanh
nghiệp), nhóm này được kinh doanh tương đối ổn định tuy rằng lợi nhuận tại
một thời điểm có thể rất thấp. Do đó, nhóm sách này sẽ không nằm trong phạm
vi được xét của bài toán dự báo kinh tế.
 Nhóm sách chịu ảnh hưởng của thời vụ, chu kỳ, và một số yếu tố khác. Qua
phân tích dữ liệu thống kê của nhà sách cho thấy một số nhóm sách sau đây
chịu tác động của đặc tính thời vụ chu kỳ:
+ Sách giáo khoa các cấp học

+ Giáo trình cho sinh viên

+ Sách thiếu nhi

+ Khoa học đời sống

+ Khoa học kỹ thuật

+ Sách công nghệ thông tin, điện tử viễn thông

+ Sách ngoại ngữ (tiếng anh, giáo trình ôn thi chứng chỉ quốc tế IELST,…)

+ Sách bản quyền nước ngoài (truyện, sách khoa học kỹ thuật, sách luyện thi
chứng chỉ IT)
Lợi nhuận thu được từ nhóm sách này là rất lớn nhưng cũng tiềm ẩn rất nhiều
rủi ro. Vậy bài toán đặt ra là phải dự báo được khoảng thời gian kinh doanh tốt nhất
của mùa vụ diễn ra trong bao lâu cùng với số lượng có thể bán được, nó giúp cho việc
tính toán thời gian hoàn lại vốn đầu tư với lợi nhuận thu về so với chi phí kinh doanh
đầu tư ra.
Trong kinh doanh ngoài nguồn vồn tự có của mình, doanh nghiệp sử dụng
nguồn vốn vay từ các ngân hàng thương mại. Vậy thì làm sao để cân đối được lãi suất
tiền vay với lợi nhuận từ việc kinh doanh từ nguồn vốn vay. Hoặc khi lãi suất ngân
hàng tăng, có nên chăng dành ngồn vốn tự có để đầu tư nhập hàng hay gửi ngân hàng
để có được lợi nhuận cao hơn.

Trang 7
IV. CÁC THAM SỐ ẢNH HƯỞNG TỚI KINH DOANH SÁCH
Như đã trình bày ở phần trên, mỗi chủng loại sách phát hiện ở trên chịu tác
động của các yếu tố như:
a. Thời điểm:
+ Đầu năm mới: lượng sách bán ra kéo dài khoảng 1 tháng âm lịch.

+ Kỳ nghỉ hè: thời gian bán ra kéo dài khoảng 2 – 3 tháng.

+ Tết thiếu nhi: thường kéo dài trong khoảng 1 tuần.

+ Đầu năm học: kéo dài trong khoảng 2 tháng trước khi bước vào năm học
mới.
b. Giá cả:
+ Chỉ số giá tiêu dùng tăng, người dân phải cân nhắc tới túi tiền của mình làm
cho nhu cầu sử dụng sách giảm xuống. Bên cạnh đó, giá sách đầu vào tăng
làm giảm lợi nhuận.
c. Tình trạng xã hội:
+ Cải cách sách giáo khoa, nhu cầu sách cho bậc học được cải cách sẽ tăng,
vậy thì phải nhập bao nhiêu cho loại sách có tính mùa vụ này.
d. Tỉ giá ngoại tệ:
+ Biến động của USD ảnh hưởng tới những loại sách được nhập khẩu từ các
nhà xuất bản nước ngoài. Nếu nhập sách vào thời điểm đồng ngoại tệ quá
cao sẽ làm giảm lợi nhuận so với số lượng sách mà thị trường đang cần.
+ Lãi suất ngân hàng, nếu lãi suất vay vồn tăng dẫn tới tăng chi phí đầu vào sẽ
làm giảm lợi nhuận kinh doanh.

V. MỤC TIÊU HỆ THỐNG MỚI ĐẠT ĐƯỢC


 Để tạo nên sự thống nhất và đồng bộ dữ liệu giữa các bộ phận, hệ thống mới sử
dụng cơ sở dữ liệu quan hệ và mô hình dữ liệu phân tán trên nền tảng công
nghệ client server mà hệ quản trị cơ sở dữ liệu ở đây là SQL Server 2005.

 Việc truy cập để lấy thông tin phải nhanh chóng và có thể thực hiện vào bất kỳ
thời điểm nào khi có yêu cầu. Người sử dụng tùy theo chức năng nhiệm vụ
được cung cấp thông tin đủ cho công việc của mình.

Trang 8
 Tạo ra các dạng dữ liệu chuẩn, được kiểm tra tự động khi cập nhật, việc này sẽ
giúp cho những bộ phận khác nhau khi sử dụng hệ thống có thể chủ động công
việc của mình tạo độ tin cậy cao của dữ liệu, tránh phụ thuộc vào các bộ phận
khác.

 Sách được phân loại theo nhiều cấp khác nhau tùy vào từng lĩnh vực mà có sự
phân cấp hợp lý để giúp cho quá trình quản lý, tìm kiếm, thống kê được dễ
dàng.

 Lập hóa đơn thanh toán cho khách hàng phải chính xác, đầy đủ thông tin cần
thiết, dễ hiểu dễ kiểm tra, thuận tiện trong khi lập, kiểm soát được quá trình
nhận tiền và trả lại tiền thừa cho khách.

 Do hệ thống xây dựng cho môi trường đa người dùng nên vấn đề bảo mật, an
toàn hệ thống được thiết kế phù hợp với nhiệm vụ công việc của từng người,
từng bộ phận. Tránh được các rủi ro từ bên ngoài tác động lên hệ thống.

 Hệ thống báo cáo, thống kê được xây dựng theo các mẫu biểu có sẵn của nhà
sách.

 Phần tìm kiếm, tra cứu có nhiều lựa chọn tạo nên sự nhanh chóng tiện lợi trong
hoạt động tìm kiếm.

 Quản lý kho một cách đơn giản, báo cáo chính xác, nhanh chóng khi có yêu
cầu.

 Quản lý sách trên quầy nhanh chóng chính xác. Thống kê trong ngày những
loại sách được bán từ quầy và nhập lên quầy từ kho, dùng để đối chiếu để
phòng việc mất mát sách trên quầy.
 Để nâng cao công tác lập kế hoạch, hệ thống dựa trên những dữ liệu chuẩn hóa
xây dựng các dự báo lượng hàng bán ra nhằm đem lại hiệu quả trong hoạt động
kinh doanh, giảm thiểu rủi do, tăng khả năng cạnh tranh cho doanh nghiệp.

 Hệ thống phải đảm bảo sự thuận tiện, với các giao diện thân thiệt, dễ sử dụng,
có những chỉ dẫn phù hợp.

Trang 9
CHƯƠNG I: KHẢO SÁT HỆ THỐNG

I. Khảo sát sơ bộ
Hệ thống quản lý sách và tối ưu trong quá trình xuất nhập sách cho Nhà sách.
Hệ thống mang lại sự tiện lợi, chính xác, chuyên nghiệp cho quá trình quản lý bán
sách. Đồng thời cũng trợ giúp cho việc tối ưu hóa trong quá trình nhập xuất sách,
giảm thiểu rủi do, nâng cao hiệu quả kinh doanh.

1. Nhiệm vụ cơ bản
Khi có nhu cầu nhập sách, bộ phận đặt hàng liên hệ và gửi đơn hàng tới nhà
xuất bản. Sách chuyển từ Nhà xuất bản được bộ phận thủ kho kiểm tra, nhận và quản
lý. Bộ phận bán hàng có nhiệm vụ lập bản dự trù, nhận phiếu phát sách đưa lên quầy,
quản lý sách trên quầy, hướng dẫn khách hàng tìm được sách cần mua. Khi khách
hàng tìm được sách, bộ phận bán hàng hướng dẫn khách hàng ra quầy thu ngân thanh
toán. Nhân viên thu ngân thực hiện việc lập đơn hàng, thu tiền , in hóa đơn bán hàng
cho khách hàng.

2. Cơ cấu tổ chức và sự phân công trách nhiệm


Để phục vụ cho quá trình nhập, xuất và quản lý sách, Nhà sách có 4 bộ phận,
hoạt động tương đối độc lập, trực tiếp tham gia vào hệ thống mới.
 Bộ phận bán hàng đảm nhiệm việc lập bản dự trù sách, nhận sách từ kho
và quản lý sách trên quầy. Hướng dẫn khách hàng nhanh tìm được sách cần
mua, tư vấn cho khách về sách, tài liệu trong mọi lĩnh vực mà khách có nhu
cầu. Bộ phận này sử dụng máy tính, trên đó có hệ chương trình: lập bản dự
trù (DT), thống kê sách (TKS)
 Bộ phận đặt hàng đảm nhiệm việc đặt hàng. Bộ phận này sử dụng máy
tính, trên đó có hệ chương trình gọi là Đặt hàng (ĐH) trợ giúp cho việc tìm
nhà xuất bản, nhà cung cấp trong và ngoài nước, làm đơn hàng và theo dõi
sự hoàn tất của đơn hàng.
 Bộ phận thủ kho đảm nhiệm việc nhập, xuất và quản lý sách trong kho. Bộ
phận này có sử dụng máy tính, trên đó có hệ chương trình: kho hàng (KHO)
theo dõi việc nhập hàng vào kho theo các đơn đặt hàng, xuất hàng theo hợp

Trang 10
đồng, xuất hàng ra quầy nếu có yêu cầu từ bộ phận bán hàng và hệ chương
trình: sách (SACH) để phân loại và quản lý thông tin của sách.
 Bộ phận thu ngân đảm nhiệm việc lập hóa đơn bán hàng cho khách hàng.
Bộ phận này sử dụng máy tính, trên đó có hệ chương trình Lập hóa đơn bán
hàng, in hóa đơn thanh toán cho khách hàng, khi khách hàng chọn được
sách và ra quầy thu ngân thanh toán.

3. Quy trình xử lý
Qua điều tra khảo sát, ta thấy quy trình làm việc cùng các loại chứng từ giao
dịch sử dụng trong quy trình đó như sau:
Bộ phận đặt hàng khi có nhu cầu đặt mua sách trước hết chọn Nhà xuất bản
để đặt mua các loại sách. Muốn vậy, họ dùng máy tính để tìm kiếm thông tin về các
nhà xuất bản lưu trong tệp NXB. Sau đó sẽ gửi đơn yêu cầu đến nhà xuất bản, nhà
xuất bản sẽ gửi lại cho Nhà sách bảng báo giá sách và tỉ lệ phần trăm hoa hổng được
hưởng cho mỗi đầu sách. Nếu đồng ý mua bộ phận đặt hàng sẽ lập đơn hàng thông
qua hệ chương trình Đơn hàng (ĐH) và gửi đơn đặt hàng đến Nhà xuất bản, sau đó 2
bên sẽ cùng nhau ký kết hợp đồng. Nhà xuất bản dựa vào đơn hàng, chuyển hàng đến
cho nhà sách kèm theo phiếu giao hàng. Bộ phận thủ kho tiếp nhận hàng đó. Sách
được chuyển vào kho, thông tin trên phiếu giao hàng được lưu vào tệp nhận hàng
đồng thời in một bản gửi lại cho nhà xuất bản để họ sang bộ phận đặt hàng thanh toán.
Bộ phận đặt hàng căn cứ vào phiếu nhận hàng để thanh toán cho nhà xuất bản và lấy
hóa đơn thanh toán của nhà xuất bản, thông tin trên hóa đơn thanh toán được lưu trong
tệp hóa đơn thanh toán.
Bộ phận thủ kho tiếp nhận bản dự trù sách của bộ phận bán hàng trong đó có
các thông tin tên sách cùng với số lượng tương ứng. Để đáp ứng yêu cầu của bộ phận
bán hàng, bộ phận quản lý kho kiểm tra thông tin số lượng sách trong kho với bản dự
trù, nếu số lượng sách có thể đáp ứng được họ sẽ lập phiếu xuất kho và phát sách cho
nhân viên bán hàng. Khi sách trên quầy không bán được, nhân viên bán hàng sẽ
chuyển xuống cho bộ phận kho và bộ phận này sẽ làm phiếu nhập kho gửi cho bộ
phận bán hàng.
Sách được nhân viên kho quản lý bằng cách phân loại theo nhóm chủ đề, mỗi
quyển sách được lưu trữ trong kho SACH bao gồm các thông tin:

Trang 11
Mã số sách (ISBN - International Standard Book Number) - Tên sách – Mã
loại – Tên tác giả - Nhà xuất bản – Năm xuất bản - Lần xuât bản – Mã quốc gia –
Ngôn ngữ – Số trang – Kích thước – Trọng lượng – Nội dung giới thiệu sách.
Hàng tháng nhân viên bộ phận kho phải thực hiện kiểm kê lập báo cáo lượng
sách tồn trong kho cho bộ phận đặt hàng để lên kế hoạch đặt hàng.
Bộ phận bán hàng dựa vào hệ chương trình DT để lập bản dự trù sách gửi cho
bộ phận kho và nhận sách từ kho đưa lên quầy sách. Hàng ngày bộ phận này phải tiến
hành kiểm kê sách trên quầy, dùng hệ chương trình TKS để lập báo cáo cho bộ phận
đặt hàng. Khi khách hàng có nhu cầu chọn sách, bộ phận bán hàng giúp khách hàng
tìm được sách cần mua và hướng dẫn khách hàng đến quầy thanh toán.
Nhân viên thu ngân lập hóa đơn thanh toán khi có yêu cầu thanh toán của
khách hàng, sau đó nhận tiền và gửi lại khách hóa đơn thanh toán trong đó có ghi rõ:
Số hóa đơn – Mã nhân viên lập hóa đơn – Ngày lập hóa đơn – Mã khách hàng
(bán sỉ) – Địa chỉ (bán sỉ) - Tổng số tiền.
Thông tin chi tiết của hóa đơn:
Số hóa đơn – Tên sách – Đơn giá – Số lượng của từng cuốn sách – Thành tiền.
Ngoài ra, mỗi tuần nhân viên thu ngân phải lập báo cáo doanh thu chi tiết của
từng loại sách gửi cho bộ phận đặt hàng.

4. Quy tắc quản lý


Hàng quý nhà sách tiến hành thống kê các loại sách nào còn tồn kho hơn 3
tháng kể từ ngày nhập để qui định mức giảm giá phù hợp, chỉ bán 50% so với giá bán
qui định từ trước.

Trang 12
5. Mẫu biểu
Mẫu của các loại giấy tờ giao dịch của hệ thống bao gồm:
Nhà cung cấp gửi cho hệ thống bảng giới thiệu về mình và đơn giá của từng
loại sách cũng như phần trăm hoa hồng được hưởng. Hệ thống lưu lại thông tin đó
trong tệp NXB bao gồm:
BM1 NHÀ XUẤT BẢN
Tên NXB:…………………………………………………...
Địa chỉ NXB:………………………………………………..
Số điện thoại:………………………………………………..
ISBN Đơn giá chuẩn Phần trăm

Bộ phận đặt hàng nhận hóa đơn từ nhà xuất bản.


BM2 HÓA ĐƠN TỪ NHÀ XUẤT BẢN

HÓA ĐƠN
SỐ:………
Tên NXB:……………………………………………………………..
Ngày HĐ:……/………/…………

ISBN Số lượng Đơn giá Thành tiền SH giao hàng

Đơn hàng hệ thống lưu để theo dõi.

Trang 13
BM3 ĐƠN ĐẶT HÀNG

ĐƠN HÀNG
SỐ:…………
Tên NXB:………………………………………………………………..
Ngày ĐH:………/………/……………………………………………..

ISBN Đơn giá Lượng đăt

Thông tin nhận hàng.


BM4 NHẬN HÀNG
SH giao hàng:……………………………………………….............
Tên NXB:…………………………………………………………….
Ngày giao hàng:……/………/…………Nơi cất…………………….
ISBN Lượng giao SH Đơn

Phiếu giao hàng.


BM5 GIAO HÀNG
PHIẾU GIAO HÀNG
SH Giao hàng:…………………………………………………………
Tên NXB:……………………………………………………………..
Ngày giao hàng:……/………/………………………………………
ISBN Lượng giao SH Đơn

Hóa đơn bán hàng cho khách hàng do bộ phận thu ngân lập.
BM6 HÓA ĐƠN BÁN HÀNG

Trang 14
HÓA ĐƠN BÁN HÀNG
SỐ HĐ:…………………
Ngày HĐ:……/……/………………………………………………….
Mã khách hàng:……………………………………………………….
Địa chỉ:…………………………………………………………………

ISBN Tên sách Đơn giá Số lượng Thành tiền

Dự trù sách xuất ra quầy


BM7 PHIẾU DỰ TRÙ
SH Dự trù:…………………………………………………………..
SH Quầy:…………………………………………………………….
Ngày DT:……/………/………………………………………………
ISBN Số lượng

Phiếu phát sách từ kho ra quầy.


BM8 PHIẾU PHÁT SÁCH
SH xuất nhập:………………………………………………………
Xuất nhập:………………………………………………………….
SH Quầy:…………………………………………………………..
Ngày xuất nhập:……/………/……………………………………..
ISBN Số lượng

Phiếu kiểm kê sách cuối ngày tại quầy


BM9 PHIẾU KIỂM KÊ SÁCH

Trang 15
Mã kiểm kê:………………………………………………………….
SH Quầy:…………………………………………………………….
Ngày kiểm kê:………/………/………………………………………
ISBN Số lượng

Trang 16
II. Mô hình tiến trình nghiệp vụ hệ thống
1. Định nghĩa ký hiệu
: Bộ phận bên trong hệ thống.
<Tên bộ phận>

- Chức năng1
- Chức năng 2
-…………….
- Chức năng n

Tên tác : Tác nhân bên ngoài có tác động tới hệ thống.
nhân

: Luồng thông tin.

2. Giải thích vẽ mô hình


Bộ phận đặt hàng liên hệ với nhà xuất bản để biết giá sách, sau đó lập đơn đặt hàng
gửi nhà xuất bản. Sau khi có phiếu nhận hàng từ bộ phận thủ kho của nhà sách, bộ phận này
thực hiện việc thanh toán với nhà xuất bản và nhận hóa đơn.
Bộ phận thủ kho tiếp nhận hàng và phiếu giao hàng từ nhà xuất bản, đồng thời lập
phiếu nhận hàng. Khi có phiếu dự trù gửi từ bộ phận bán hàng, bộ phận này lập phiếu xuất
kho và xuất hàng cho bộ phận bán hàng đưa lên quầy.
Nhân viên bán hàng lập bản dự trù gửi cho bộ phận kho để nhận sách đưa lên quầy và
phiếu xuất kho. Hàng ngày bộ phận này thực hiện việc kiểm kê sách trên quầy và nộp về cho
bộ phận đặt hàng.
Sau khi khách hàng đã chọn được sách ra quầy thu ngân thanh toán, bộ phận thu ngân
thu tiền và lập hóa đơn thanh toán gửi cho khách hàng.

Trang 17
3. Vẽ mô hình

Đơn hàng KHÁCH HÀNG

BP BÁN HÀNG
BP THU NGÂN

- Tiếp nhận đơn hàng Hóa đơn bán hàng TT Sách


- Lập bản dự trù sách lên
- Lập hóa đơn bán hàng quầy
- Lập báo cáo doanh thu - Phiếu xuất kho
- Phiếu kiểm kê sách

Phiếu dự trù

BP THỦ KHO Phiếu xuất kho BP ĐẶT HÀNG

- Nhận hàng và phiếu giao - Chọn NXB


hàng - Tiếp nhận giá sách
- Lập phiếu nhận hàng - Biên soạn ĐHàng
- In ds nhận hàng - Theo dõi thực hiện đơn
- Lập phiếu xuất hàng lên Phiếu nhận hàng Giao dịch hàng
quầy - Tiếp nhận hóa đơn từ
NXB
- In DS đặt hàng
Hóa đơn

Hàng + Phiếu giao hàng NHÀ XUẤT BẢN Đơn đặt hàng

TT Giá sách

Hình 1.1: Mô hình tiến trình nghiệp vụ hệ thống “Quản lý bán sách”

Trang 18
CHƯƠNG II: PHÂN TÍCH HỆ THÔNG

I. Sơ đồ phân rã chức năng


1. Ký hiệu sử dụng
Tên chức năng của hệ thống:
<Tên chức năng>

Quan hệ phân cấp

2. Vẽ sơ đồ

Quản lý bán sách

Quản lý kho Bán hàng và thu ngân Đặt hàng

Lập phiếu nhận hàng Lập hóa đơn Chọn nhà xuất bản

Lập phiếu xuất kho Lập phiếu kiểm kê Lập đơn hàng

Lưu bản dự trù Báo cáo doanh thu Nhận hóa đơn

Báo cáo tồn kho

Hình 2.1: Sơ đồ phân cấp chức năng hệ thống “Quản lý bán sách”

Trang 19
II. Sơ đồ luồng dữ liệu
1. Ký hiệu sử dụng

Tiến trình (chức năng):

Luồng dữ liệu:

Kho dữ liệu:

Tác nhân ngoài:

Tác nhân trong:

2. Vẽ sơ đồ
DFD mức khung cảnh hệ thống quản lý bán sách (mức 0)
Giao dịch + Đơn đặt hàng Đơn hàng

NHÀ XUẤT BẢN TT báo giá Quản lý bán sách KHÁCH HÀNG

Hóa đơn

Sách + Phiếu giao hàng Hàng + Hóa đơn bán hàng

Hình 2.2: Sơ đồ luồng dữ liệu mức khung cảnh hệ thống “Quản lý bán sách”

Trang 20
DFD mức dưới đỉnh hệ thống quản lý bán sách (mức 1)

Đơn hàng NXB Hóa đơn bán hàng

Báo giá

Giao dịch + Đơn hàng


Đặt hàng Xuất kho Bán hàng và thu ngân Hàng + Hóa đơn bán hàng

Tồn kho

NHÀ XUẤT BẢN Hóa đơn thanh toán

DS hàng nhận
Sách
Bản dự trù Đơn hàng KHÁCH HÀNG
Quản lý kho
Phiếu nhận hàng

Hàng + phiếu giao hàng

Phiếu xuất kho

Phiếu nhận hàng Bản dự trù

Hình 2.3: Sơ đồ luồng dữ liệu mức 1 hệ thống “Quản lý bán sách”

Trang 21
DFD mức 2 của chức năng “Đặt hàng”

NXB Hóa đơn

Chọn nhà xuất


Báo giá
bản
TT nhà xuất bản

Nhận hóa đơn Hóa đơn thanh toán


NHÀ XUẤT BẢN Giao dịch Ttin NXB

Hóa đơn

Đơn hàng NHÀ XUẤT BẢN


Đơn hàng Lập đơn hàng

DS hàng đặt Đặt hàng

Sách
Đơn hàng

Hình 2.4: Sơ đồ luồng dữ liệu mức 2 chức năng “Đặt hàng”

Trang 22
DFD mức 2 chức năng “Quản lý kho”

Phiếu nhận hàng

Phiếu xuất kho

Hàng + Phiếu giao hàng

Lập phiếu nhận hàng


NHÀ XUẤT BẢN

Phiếu nhận hàng


Ds hàng Lập phiếu xuất kho

Phiếu xuất kho

Lưu bản dự trù Dự trù Quản lý kho

Bản dự trù

Hình 2.5: Sơ đồ luồng dữ liệu mức 2 chức năng “Quản lý kho”

Trang 23
DFD mức 2 chức năng “Bán hàng và thu ngân”

Thống kê sách

TT quầy sách Kiểm kê sách

Đơn hàng
Bán hàng và thu ngân
KHÁCH HÀNG

Lập hóa đơn bán hàng


Báo cáo tuần Hàng + hóa đơn
Báo cáo doanh thu

Hóa đơn bán hàng

Hình 2.6: Sơ đồ luồng dữ liệu mức 2 chức năng “Bán hàng và thu ngân”

Trang 24
III. Thực thể liên kết (Entity Relationship-ER) mở rộng
1. Xác định kiểu thực thể, kiểu thuộc tính
 Sách (ISBN, Tên sách, Mã loại sách, Tên tác giả, Tên nhà xuất bản, Năm
xuất bản, Lần xuất bản, Số tập, Mã quốc gia, Ngôn ngữ, Số trang, Trọng
lương, Nội dung giới thiệu)
 Khách hàng (Mã khách hàng, Tên khách hàng, Địa chỉ, Số điện thoại)

 Nhà xuất bản (Mã NXB, Tên NXB, Địa chỉ, Số điện thoại, ISBN, Đơn giá
chuẩn, Phần trăm )
 Đơn hàng (SH Đơn, Tên NXB, Ngày đặt hàng, ISBN, Đơn giá, Lượng đặt)

 Hóa đơn (SH Hóa đơn, Tên NXB, ngày HĐ, ISBN, Số lượng, Đơn giá,
Thành tiền, SH giao hàng)
 Giao nhận hàng (SH giao hàng, Tên NXB, Ngày giao hàng, Nơi cất,
ISBN, Lượng giao, SH Đơn)
 Hóa đơn bán hàng (SH hóa đơn, ngày HĐ, Mã khách hàng, Địa chỉ, ISBN,
Tên sách, Số lượng, Đơn giá, Thành tiền)
 Dự trù (SH Dự trù, SH Quầy, Ngày DT, Mã nhóm sách, ISBN, Số lượng)

 Xuất nhập sách (SH xuất nhập, SH Quầy, Ngày xuất nhập, ISBN, Số
lượng, Nhập xuất)
 Kiểm kê sách (Mã kiểm kê, SH Quầy, Ngày kiểm kê, ISBN, Số lượng)

 Quầy sách (SH Quầy, Tên quầy)

Trang 25
2. Xác định kiểu liên kết

NHÀ XUẤT BẢN XUẤT BẢN SÁCH

NHÀ XUẤT BẢN CÓ ĐƠN HÀNG

ĐƠN HÀNG CÓ SÁCH

ĐƠN HÀNG THEO GIAO NHẬN HÀNG

NHÀ XUẤT BẢN GIAO GIAO NHẬN HÀNG

NHÀ XUẤT BẢN LẬP HÓA ĐƠN

HÓA ĐƠN THEO GIAO NHẬN HÀNG

SÁCH GỒM HÓA ĐƠN

SÁCH ĐƯỢC GIAO NHẬN HÀNG

KHÁCH HÀNG CÓ HÓA ĐƠN BÁN HÀNG

SÁCH GỒM HÓA ĐƠN BÁN HÀNG

DỰ TRÙ GỒM SÁCH

KIỂM KÊ SÁCH CÓ SÁCH

XUẤT NHẬP SÁCH CÓ SÁCH

DỰ TRÙ GỒM QUẦY SÁCH

KIỂM KÊ SÁCH CÓ QUẦY SÁCH

Trang 26
3. Vẽ ER mở rộng
a. Định nghĩa ký hiệu

Thực thể
Max=n; min=0;

Thực thể
Max=1; min=0;

Thực thể
Max=1; min=1;

Thực thể
Max=n; min=1;
Kiểu thực thể trong mô hình thực thể:

Tên kiểu thực th ể


1
Tên kiểu thu ộ c tính
2
Tên kiểu thu ộ c tính
…..
Tên kiểu thu ộ c tính n

b. Vẽ mô hình

Trang 27
T H EO

G IA O

G IA O N H Ậ N NHÀ XUẤT BẢN



HÀNG
S H g ia o h à n g
TH EO Mã NXB
Tên N X B T ên N X B
ĐƠN HÀNG Đ ịa c h ỉ
N g à y g ia o h à n g
N ơi cất S ố đ iệ n th o ạ i
S H Đ ơn
IS B N ISB N
Tên N X B
L ư ợ n g g ia o Đ ơ n g iá c h u ẩ n
N gày đặt hàng X U Ấ T BẢ N

SH Đ ơn P h ầ n tră m
ISB N
ĐƯỢC
Đ ơ n g iá
DỰ TRÙ L ượn g đặt
LẬP
S H D ự tr ù
S H Q uầy
N gày D T
IS B N
GỒM S ố lư ợ n g CÓ HÓA ĐƠN

SH H óa đơn
T ên N X B
N gày H Đ
Q U Ầ Y SÁ CH SÁ CH IS B N
G ỒM S ố lư ợ n g
S H Q uầy IS B N Đ ơ n g iá
T ê n q u ầy T ê n sách
GỒM T h à n h tiề n
M ã lo ạ i sá c h S H g ia o h à n g
CÓ T ê n tá c g iả
T ên nhà xuất bản
K IỂ M K Ê S Á C H N ăm xuất bản
L ần xuất bản
M ã k iể m k ê M ã q u ố c g ia HÓA ĐƠN BÁN
GỒM
N gôn ngữ HÀNG
S H Q uầy CÓ
N g à y k iể m k ê S ố tra n g SH h ó a đ ơn
IS B N T r ọ n g lư ơ n g N gày H Đ
S ố lư ợ n g N ộ i d u n g g iớ i th iệ u M ã khách hàng
S ố tậ p Đ ịa c h ỉ
KHÁCH HÀNG
IS B N
X U Ấ T N H Ậ P SÁ CH
M ã khách hàng T ên sá ch
S H xuất nhập T ên khách hàng S ố lư ợ n g
S H Q uầy CÓ Đ ịa c h ỉ Đ ơ n g iá
N gày xuất nhập S ố đ iệ n th o ạ i T h à n h tiề n
M ã lo ạ i s á c h
ISB N
S ố lư ợ n g CÓ

N hập xuất

Hình 2.7: Mô hình thực thể mở rộng hệ thống “Quản lý bán sách”

Trang 28
IV. Chuẩn hóa dữ liệu
1. Chuyển từ ER mở rộng về ER kinh điển
Xử lý các thuộc tính đa trị
Kiểu thực thể “Sách” có thuộc tính đa trị {Mã loại}, {Mã quốc gia}, {Ngôn ngữ}.
Chuyển sang ER kinh điển ta có:
LOẠI SÁCH
SÁCH SÁCH
THUỘC Mã loại sách
ISBN ISBN Tên loại sách
Tên sách Tên sách
Mã loại sách Tên tác giả
Tên tác giả Tên nhà xuất bản QUỐC GIA
Tên nhà xuất bản Năm xuất bản
Năm xuất bản Lần xuất bản CÓ Mã quốc gia
Lần xuất bản Số trang Tên quốc gia
Mã quốc gia Trọng lương
Ngôn ngữ Nội dung giới thiệu
Số trang Mã loại NGÔN NGỮ
Trọng lương Ngôn ngữ GỒM
Nội dung giới thiệu Mã quốc gia Ngôn ngữ
Số tập Số tập Tên ngôn ngữ

Kiểu thực thể “Nhà xuất bản” có thuộc tính đa trị {ISBN, Đơn giá chuẩn, Phần
trăm}. Chuyển sang ER kinh điển ta có:
NHÀ XUẤT BẢN NHÀ XUẤT BẢN
SÁCH_NXB
Mã NXB Mã NXB
CỦA ISBN
Tên NXB Tên NXB
Đơn giá chuẩn
Địa chỉ Địa chỉ
Phần trăm
Số điện thoại Số điện thoại
ISBN
Đơn giá chuẩn
Phần trăm

Kiểu thực thể “Đơn hàng” có thuộc tính đa trị {ISBN, Đơn giá, Lượng đặt},
{Tên NXB}. Chuyển sang ER kinh điển ta có:

ĐƠN HÀNG CHI TIẾT ĐƠN


ĐƠN HÀNG
HÀNG
SH Đơn SH Đơn CỦA
ISBN
Tên NXB Tên NXB Đơn giá
Ngày đặt hàng Ngày đặt hàng Lượng đặt
ISBN
Đơn giá
Lượng đặt

Trang 29
Kiểu thực thể “Hóa đơn” có thuộc tính đa trị {ISBN, Số lượng, Đơn giá, Thành
tiền, SH giao hàng}, {Tên NXB}. Chuyển sang ER kinh điển ta có:
HÓA ĐƠN
CHI TIẾT HÓA ĐƠN
SH Hóa đơn
HÓA ĐƠN
Tên NXB ISBN
Ngày HĐ SH Hóa đơn CỦA Tên sách
ISBN Tên NXB Số lượng
Số lượng Ngày HĐ Đơn giá
Đơn giá Thành tiền
Thành tiền SH giao hàng
SH giao hàng

Kiểu thực thể “Hóa đơn bán hàng” có thuộc tính đa trị {ISBN, Số lượng, Đơn
giá, Thành tiền}. Chuyển sang ER kinh điển ta có:
HÓA ĐƠN BÁN
HÀNG DÒNG HÓA ĐƠN
HÓA ĐƠN BÁN
SH hóa đơn HÀNG ISBN
Ngày HĐ Tên sách
Mã nhân viên SH hóa đơn CỦA Số lượng
Mã khách hàng Ngày HĐ
Đơn giá
Địa chỉ Mã khách hàng
Thành tiền
ISBN Địa chỉ
Tên sách
Số lượng
Đơn giá
Thành tiền

Kiểu thực thể “Giao nhận hàng” có thuộc tính đa trị {ISBN, Số lượng giao,
SH Đơn}, {Tên NXB}. Chuyển sangg ER kinh điển ta có:
GIAO NHẬN GIAO NHẬN
HÀNG HÀNG CHI TIẾT GIAO
NHẬN HÀNG
SH giao hàng SH giao hàng CỦA
Tên NXB ISBN
Mã NXB
Ngày giao hàng Lượng giao
Ngày giao hàng
Nơi cất SH Đơn
Nơi cất
ISBN
Lượng giao
SH Đơn

Trang 30
Kiểu thực thể “Dự trù”, “Kiểm kê sách”, “Xuất nhập sách” cùng có thuộc tính đa
trị {ISBN, Số lượng}. Chuyển sang ER kinh điển ta có:
DỰ TRÙ

DÒNG DỰ TRÙ
SH Dự trù DỰ TRÙ
SH Quầy
Ngày DT SH Dự trù CỦA
ISBN
ISBN SH Quầy Số lượng
Số lượng Ngày DT

KIỂM KÊ SÁCH
KIỂM KÊ SÁCH DÒNG KIỂM KÊ
Mã kiểm kê Mã kiểm kê CỦA
SH Quầy ISBN
SH Quầy
Ngày kiểm kê Số lượng
Ngày kiểm kê
ISBN
Số lượng

XUẤT NHẬP SÁCH


XUẤT NHẬP SÁCH DÒNG XUẤT NHẬP
SH xuất nhập
SH xuất nhập
SH Quầy CỦA
SH Quầy ISBN
Ngày xuất nhập
Ngày xuất nhập Số lượng
ISBN
Nhập xuất
Số lượng
Nhập xuất

2. Chuyển ER kinh điển về mô hình quan hệ


Biểu diễn các quan hệ trong mô hình quan hệ:
Quan hệ 1 – 1:

Quan hệ 1 - nhiều:

Vẽ mô hình quan hệ

Trang 31
Tbl_CTGIAONHAN Tbl_SACH_NXB Tbl_NHAXUATBAN
GIAOHANG
Tbl_DONHANG IDNhaXuatBan
ISBN
IDGiaoHang ISBN TenNXB
IDNhaXuatBan IDDon
IDNhaXuatBan IDGiaoHang DiaChi
DonGiaChuan IDNhaXuatBan
NgayGiaoHang LuongGiao SoDienThoai
PhanTram NgayDatHang
NoiCat IDDon

Tbl_DUTRU Tbl_QUOCGIA

IDDuTru IDQuocGia
IDQuay TenQuocGia
NgayDT
Tbl_CTDONHANG Tbl_HOADON
Tbl _DDUTRU
Tbl _SACH IDHoaDon
ISBN
ISBN IDNhaXuatBan
ISBN IDDon
IDDuTru NgayHD
TenSach DonGia
SoLuong
TenTacGia LuongDat
NamXuatBan
Tbl_QUAYSACH LanXuatBan
SoTap Tbl_KHACHHANG
IDQuay
TenQuay SoTrang
TrongLuong IDKhachHang
Tbl_CTHOADON
NoiDungGioThieu TenKhachHang
Tbl_DKIEMKE IDLoaiSach DiaChi
ISBN
IDNgonNgu SoDienThoai
ISBN IDHoaDon
IDQuocGia SoLuong
IDKiemKe
Số lượng DonGia
Tbl_KIEMKESACH IDGiaoHang

IDKiemKe
IDQuay tbl_DONGXUATNHAP
NgayKiemKe Tbl_DHOADON
IDXuatNhap
Tbl_HDONBH
ISBN ISBN
SoLuong IDHoaDon
IDHoaDon
SoLuong
NgayHD
Tbl_XUATNHAP DonGia
IDKhachHang
IDXuatNhap Tbl_NGONNGU
Tbl_LOAISACH
IDQuay
NgayXuatNhap IDLoaiSach IDNgonNgu
NhapXuat TenLoaiSach TenNgonNgu

Hình 2.8: Mô hình thực thể quan hệ của hệ thống “Quản lý bán sách”

Trang 32
V. Đặc tả bảng dữ liệu trong mô hình quan hệ
1) tbl_LOAISACH

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDLoaiSach Int (identity) Mã loại sách
2 TenLoaiSach Nvarchar(200) Tên loại sách
2) tbl_NGONNGU

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDNgonNgu Varchar(10) Mã ngôn ngữ của sách
2 TenNgonNgu Nvarchar(50) Tên ngôn ngữ
3) tbl_QUOCGIA

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDQuocGia Varchar(10) Mã quốc gia
2 TenQuocGia Nvarchar(100) Tên quốc gia
4) tbl_QUAYSACH

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDQuay Varchar(10) Mã quầy sách
2 TenQuay Nvarchar(100) Tên quấy sách

5) tbl_SACH

STT Khóa Khóa Tên trường Kiểu dữ liệu Diễn giải

Trang 33
chinh ngoại
1  ISBN Varchar(10) Mã số sách
2 TenSach Nvarchar(200) Tên sách
3 TenTacGia Nvarchar(100) Tên tác giả
4 NamXuatBan Varchar(7) Năm xuất bản
5 LanXuatBan Varchar(2) Lần xuất bản
6 SoTrang Int Số trang
7 SoTap smallint Số tập
8 TrongLuong Float Trọng lượng sách
9 NoiDungGioiThieu Nvarchar(500) Nội dung tóm tắt
10  IDLoaiSach Int Mã loại sách
11  IDNgonNgu Varchar(10) Mã ngôn ngữ
12  IDQuocGia Varchar(10) Mã quốc gia
6) tbl_NHAXUATBAN

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDNhaXuatBan Varchar(10) Mã nhà xuất bản
2 TenNXB Nvarchar(100) Tên nhà xuất bản
3 DiaChi Nvarchar(100) Địa chỉ nhà xuất bản
4 SoDienThoai Varchar(11) Số điện thoại

7) tbl_SACH_NXB

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  ISBN Varchar(10) Mã số sách
2  IDNhaXuatBan Varchar(10) Mã nhà xuất bản

Trang 34
3 DonGiaChuan Float Đơn giá chuẩn sách
4 PhanTram Int Phần trăm hoa hồng
8) tbl_KHACHHANG

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDKhachHang Varchar(10) Mã khách hàng
2 TenKhachHang Nvarchar(100) Tên khách hàng
3 DiaChi Nvarchar(200) Địa chỉ khách hàng
4 SoDienThoai Varchar(11) Số điện thoại
9) tbl_HOADONBH

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDHoaDon Varchar(20) Số hóa đơn
2 NgayHD Datetime Ngày lập hóa đơn
3  IDKhachHang Varchar(10) Mã khách hàng bán sỉ
10) tbl_DHOADON

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  ISBN Varchar(10) Mã số sách
2  IDHoaDon Varchar(20) Số hóa đơn
3 SoLuong Int Số lượng
4 DonGia Float Đơn giá
11) tbl_HOADON

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDHoaDon Varchar(20) Số hóa đơn
2  IDNhaXuatBan Varchar(10) Mã nhà xuất bản
3 NgayHD Datetime Ngày lập hóa đơn
12) tbl_GIAOHANG

STT Khóa Khóa Tên trường Kiểu dữ liệu Diễn giải

Trang 35
chinh ngoại
1  IDGiaoHang Varchar(10) Mã giao hàng
2  IDNhaXuatBan Varchar(10) Mã nhà xuất bản
3 NgayGiaoHang Datetime Ngày giao hàng
4 NoiCat Nvarchar(50) Nơi cất hàng
13) tbl_CTHOADON

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  ISBN Varchar(10) Mã số sách
2  IDHoaDon Varchar(20) Số hóa đơn
3 SoLuong Int Số lượng
4 DonGia Float Đơn giá
5  IDGiaoHang Varchar(10) Mã giao hàng
14) tbl_DONHANG

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDDon Varchar(10) Mã số đơn đặt hàng
2  IDNhaXuatBan Varchar(10) Mã nhà xuất bản
3 NgayDatHang Datetime Ngày đặt hàng
15) tbl_CTDONHANG

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  ISBN Varchar(10) Mã số sách
2  IDDon Varchar(10) Mã số đơn hàng
3 DonGia Float Đơn giá
4 LuongDat Int Lượng đặt
16) tbl_CTGIAOHANG

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  ISBN Varchar(10) Mã số sách

Trang 36
2  IDGiaoHang Varchar(10) Mã giao hàng
3 LuongGiao Int Lượng giao
4  IDDon Varchar(10) Mã đơn đặt hàng
17) tbl_DUTRU

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDDuTru Varchar(10) Mã số bản dự trù
2  IDQuay Varchar(10) Mã số quầy
3 NgayDT Datetime Ngày lập bản dự trù
18) tbl_KIEMKESACH

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDKiemKe Varchar(10) Mã số kiểm kê sách
2  IDQuay Varchar(10) Mã số quầy sách
3 NgayKiemKe Datetime Ngày kiểm kê sách

19) tbl_XUATNHAP

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDXuatNhap Varchar(10) Mã số nhập xuất
2  IDDuTru Varchar(10) Mã bản dự trù
3 NgayXuatNhap Datetime Ngày lập bản nhập xuất
4 NhapXuat Bit Kiểu nhập xuất
20) tbl_DXUATNHAP

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDXuatNhap Varchar(10) Mã số nhập xuất
2  ISBN Varchar(10) Mã số sách
3 SoLuong Int Số lượng
21) tbl_DKIEMKE

Trang 37
Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  ISBN Varchar(10) Mã số sách
2  IDKiemKe Varchar(10) Mã số kiểm kê
3 SoLuong Int Số lượng
22) tbl_DDUTRU

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  ISBN Varchar(10) Mã số sách
2  IDDuTru Varchar(10) Mã bản dự trù
3 SoLuong Int Số lượng

CHƯƠNG III: THIẾT KẾ HỆ THỐNG

I. Thiết kế giao diện

Trang 38
1. Thiết kế menu chương trình
Quản lý bán sách

Danh mục hệ thống Nghiệp vụ Báo cáo Tìm kiếm Dự báo kinh doanh

Nhà xuất bản Mua hàng Báo cáo tồn kho Nhà xuất bản Thiết lập mạng

Khách hàng Đơn đặt hàng Báo cáo doanh thu Khách hàng Huấn luyện mạng

Phân loại sách Hóa đơn mua hàng Sách Dự báo sản phẩm
Thống kê sách

Quầy sách
Bán hàng

Cập nhật sách


Hóa đơn bán hàng

Ngôn ngữ
Kho hàng
Quốc gia
Xuất nhập kho

Bản dự trù

Hình 3.1: Menu hệ thống “Quản lý bán sách và tối ưu quá trình xuất nhập sách”

Trang 39
2. Thiết kế chức năng
Chức năng cập nhật sách

Thêm Sửa Xoá Cập nhật In Tìm kiếm Tìm

ISBN Tên sách Tên tác giả Tên nhà xuất bản Năm xuất bản Lần xuất bản Số trang

Hình 3.2: Chức năng cập nhật sách


+ Nút Xoá
Muốn xoá một bản ghi dữ liệu sách, người dùng chọn bản ghi cần xoá trong GridView, sau
đó nhấn nút xoá, bản ghi đó sẽ được đánh dấu xoá trong bảng tbl_SACH của csdl hệ thống.
+ Nút Thêm, Sửa: khi người dùng nhấn nút Thêm hoặc nút Sửa form nhập liệu xuất hiện như
hình dưới

Phân loại sách txtISBN txtTenSach


Mã số sách: Tên sách:

txtTenTacGia cboNXB
Tên tác giả: Nhà xuất bản:

txtNamXuatBan Lần xuất bản: txtLanXuatBan


Nhóm sách Năm xuất bản:

Nhóm con 1 txtSoTrang


Trọng lượng: txtTrongLuong
Số trang:
Nhóm con 2

cboIDNgonNgu cboIDQuocGia
Quốc gia: Ngôn ngữ:

Giới thiệu:
txtGioThieu

Thêm Cập nhật Huỷ bỏ Thoát

Hình 3.3: Form cập nhật sách

Trang 40
Form nhập liệu Sách tham chiếu tới các thuộc tính của các bảng như sau:

STT Tên điều khiển Tên trường Tên bảng Mô tả


1 txtISBN ISBN Tbl_SACH
2 txtTenSach TenSach Tbl_SACH
3 txtTenTacGia TenTacGia Tbl_SACH
4 cboNXB TenNhaXuatBan Tbl_NHAXUATBAN Tên NXB để
IDNhaXuatBan hiển thị
Mã NXB để
cập nhật
5 txtNamXuatBan NamXuatBan Tbl_SACH
6 txtLanXuatBan LanXuatBan Tbl_SACH
7 txtSoTrang SoTrang Tbl_SACH
8 txtTrongLuong TrongLuong Tbl_SACH
9 cboQuocGia TenQuocGia Tbl_QUOCGIA
10 cboNgonNgu NgonNgu Tbl_NGONNGU
11 txtGioiThieu GioiThieuNoiDung Tbl_SACH
12 Nhóm con N IDLoaiSach Tbl_LoaiSach

II. Thiết kế kiểm soát


1. Xác định các nhu cầu bảo mật của hệ thống
Hệ thống quản lý bán sách và tối ưu hóa việc nhập xuất sách được xây dựng
cho môi trường đa người dùng trên nền tảng công nghệ client - server, do đó yêu cầu

Trang 41
bảo mật cho nghiệp vụ hệ thống là hết sức quan trọng. Chức năng bảo mật của hệ
thống phải đảm bảo được một số yếu tố sau:

+ Tính đúng đắn

+ Tính ổn định

+ Độ tin cậy cao

+ Tính riêng tư
Từ quá trình khảo sát hệ thống ta thấy, nhà sách có nhiều bộ phận sử dụng hệ
thống cho công việc của mình. Các nhân viên trong mỗi bộ phận sử dụng các chức
năng của bộ phận đó để thao tác xử lý công việc. Do đó, chức năng bảo mật phải đảm
bảo được các nhân viên của mỗi bộ phận chỉ được phép thao tác trên các chức năng
của bộ phận mình mà không được can thiệp vào dữ liệu của bộ phận khác.
Hệ thống cần có nhân viên quản trị, quản lý danh sách tài khoản hệ thông, cấp
phát, thu hồi quyền của người sử dụng.
Ngoài ra, để đảm bảo các yêu cầu bảo mật, hệ thống mật khẩu của người dùng
cần được mã hóa theo thuật toán băm.

2. Phân định các nhóm người dùng


Từ nhu cầu bảo mật của hệ thống ta có các nhóm người sử dụng như sau:

 Nhóm quản trị

 Nhóm quản lý kho

 Nhóm đặt hàng

 Nhóm bán hàng

 Nhóm thu ngân

III. Thiết kế CSDL vật lý


1. Xác định các thuộc tính tình huống
Thuộc tính Active

Trang 42
Khi thực hiện xóa một bản ghi ở bảng dữ liệu gốc, dữ liệu ở các bảng phụ
thuộc con cũng đồng thời mất đi, làm mất mát thông tin liên quan giữa các bảng của
hệ thống. Do đó, thay vì xóa trực tiếp bản ghi vật lý trên cơ sở dữ liệu chúng ta thực
hiện xóa logic bản ghi đó bằng cách thêm vào thuộc tính Active để đánh dấu bản ghi
đó đã không được sử dụng nữa mà không làm ảnh hưởng tới dữ liệu của các bảng liên
quan. Thực hiện thêm trường Active vào tất cả các bảng của cơ sở dữ liệu hệ thống.
Tên trường Kiểu dữ liệu Giá trị mặc định
Active bit True
Thuộc tính lưu tiền khách thanh toán trong bảng Hóa đơn bán hàng.
Khách hàng thanh toán tiền cho nhân viên thu ngân, để tránh tình trạng nhầm
lẫn trong việc nhận và trả lại tiền cho khách hàng. Chúng ta sẽ thêm vào bảng hóa đơn
bán hàng hai trường Nhận tiền, Tiền thừa. Khi nhân viên nhập vào số tiền khách đã
trả, hệ thống sẽ tự động tính số tiền thừa của khách hàng.
Tên trường Kiểu dữ liệu Giá trị mặc định
NhanTien Float 0
TienThua Float 0
Thuộc tính lưu thông tin nhân viên lập hóa đơn bảng Hóa đơn bán hàng
Để quản lý hóa đơn bán hàng của hệ thống một cách chặt chẽ và thuận lợi cho
công việc lập trình sau này, chúng ta sẽ lưu trữ luôn tên tài khoản đăng nhập của nhân
viên lập hóa đơn vào bảng hóa đơn bán hàng.
Tên trường Khóa Ngoại Kiểu dữ liệu
IDUser  Varchar(20)

Thuộc tính đa cấp cho bảng Loại sách


Khi sách được nhập kho, bộ phận quản lý kho sẽ tiến hành phân loại sách. Để
phân loại chi tiết các nhóm sách theo nhiều mức (nhiều hơn 2 mức) bảng Loại Sách
hiện thời chưa đáp ứng được yêu cầu trên. Mặt khác, do số mức để phân loại nhóm
sách là không biết trước lên không thể xây dựng thêm bảng để thực hiện việc này. Vì
vậy, ta thêm một trường IDNhom vào bảng Loại sách, trường IDNhom quan hệ với

Trang 43
trường IDLoaiSach và bảng Loại sách trở thành bảng tự quan hệ đáp ứng nhu cầu
phân loại sách theo nhiều mức.
Tên trường Khóa Ngoại Kiểu dữ liệu Giá trị mặc định
IDNhom  Int NULL
Trong bảng Loại sách, trường IDNhom có giá trị NULL tức là nhóm sách ở
mức 1, mức cao nhất.

2. Xác định các bảng dữ liệu phục vụ nhu cầu bảo mật
Để đáp ứng được yêu cầu bảo mật cho hệ thống chúng ta cần sử dụng một số bảng
dữ liệu sau:
1) tbl_GROUP_ROLE

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDGroupRole Int (identity) Mã nhóm chức năng
2 GroupRoleName Nvarchar(200) Tên nhóm chức năng
3 Active Bit
2) tbl_ROLE

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDRole Int (identity) Mã chức năng
2 RoleName Nvarchar(200) Tên chức năng
3  IDGroupRole Int Mã nhóm chức năng

3) tbl_GROUP_USER

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDGroupUser Int Mã nhóm người dùng
2 GroupUserName Nvarchar(50) Tên nhóm người dùng
3 Active Bit
4) tbl_USER

Trang 44
Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDUser Varchar(20) Mã người dùng
2 UserName Nvarchar(50) Tên tài khoản
3 Password Nvarchar(100) Mật khẩu
4 Active Bit
5) tbl_USER_ROLE

Khóa Khóa
STT Tên trường Kiểu dữ liệu Diễn giải
chinh ngoại
1  IDUser Varchar(20) Mã người dùng
2  IDRole Int Mã chức năng
3 allowSelect Bit Quyền truy vấn
4 allowInsert Bit Quyền thêm mới
5 allowDelete Bit Quyền xóa
6 allowUpdate Bit Quyền cập nhật
7 AllowExec Bit Quyền thực thi
8 Active Bit

Trang 45
3. Mô hình dữ liệu của hệ thống

Hình 3.2: Mô hình dữ liệu hệ thống “Quản lý bán sách”

Trang 46
CHƯƠNG IV. MẠNG NƠRON VÀ DỰ
BÁO DỮ LIỆU

D
ự báo lượng hàng bán ra trong tương lai là một trong những hoạt động quan
trọng nhất, là hình thức cơ sở cho tất cả các hoạt động lập kế hoạch, hoạch
định chiến lược nhằm đem lại hiệu quả trong hoạt động kinh doanh cho
doanh nghiệp. Vấn đề dự báo dữ liệu là một bài toán rất phức tạp, cả về số lượng dữ
liệu cần quan tâm cũng như độ chính xác của dữ liệu dự báo. Do vậy, việc cân nhắc để
có thể chọn được mô hình phù hợp cho việc dự báo dữ liệu là một việc rất khó khăn.
Tuy nhiên, việc sử dụng mạng nơron nói chung và mạng nơron truyền thẳng nhiều lớp
với thuật toán lan truyền ngược nói riêng được ứng dụng rộng rãi trong các lĩnh vực:
nhận dạng, phân lớp, dự báo… đã được thực tế chứng minh là một công cụ tốt áp
dụng cho các bài toán trong lĩnh vực dự báo dữ liệu.
Trong phần này, để phục vụ cho mục đích nghiên cứu và xây dựng ứng dụng
tối ưu hóa quá trình nhập xuất sách của đề tài tôi tập chung nghiên cứu mạng nơron
nói chung để hiểu được cấu trúc mạng, cách thức làm việc của mạng.

Trang 47
I. Các khái niệm cơ bản về mạng nơron
1. Sơ lược về mạng nơron
1.1 Lịch sử phát triển [2,3]
Nghiên cứu và mô phỏng tế bào thần kinh (nơron) là một ước muốn từ lâu của
nhân loại. Từ ước muốn đó các nhà khoa học đã không ngừng nghiên cứu tìm hiều về
mạng nơron. Qúa trình phát triển của mạng nơron nhân tạo được đánh dấu bằng các
mốc lịch sử:
 Cuối TK 19, đầu TK 20, sự phát triển chủ yếu chỉ là những công việc có sự
tham gia của cả ba ngành Vật lý học, Tâm lý học và Thần kinh học, bởi các nhà
khoa học như Hermann von Hemholtz, Ernst Mach, Ivan Pavlov. Các công
trình nghiên cứu của họ chủ yếu đi sâu vào các lý thuyết tổng quát về HỌC
(Learning), NHÌN (vision) và LẬP LUẬN (conditioning),... và không hề đưa ra
những mô hình toán học cụ thể mô tả hoạt động của các nơron.
 Vào những năm 1940 với công trình của Warren McCulloch và Walter Pitts đã
cho biết về nguyên tắc, mạng nơron nhân tạo có thể tính toán bất kỳ một hàm
số học hay logic nào.

 Tiếp theo hai người là Donald Hebb, ông đã phát biểu rằng việc thuyết lập luận
cổ điển (classical conditioning) (như Pavlov đưa ra) là hiện thực bởi do các
thuộc tính của từng nơron riêng biệt. Ông cũng nêu ra một phương pháp học
của các nơron nhân tạo.

 Ứng dụng thực nghiệm đầu tiên của các nơron nhân tạo có được vào cuối
những năm 50 cùng với phát minh của mạng nhận thức (perceptron network)
và luật học tương ứng bởi Frank Rosenblatt. Mạng này có khả năng nhận dạng
các mẫu. Điều này đã mở ra rất nhiều hy vọng cho việc nghiên cứu mạng
nơron. Tuy nhiên nó có hạn chế là chỉ có thể giải quyết một số lớp hữu hạn các
bài toán.

 Cùng thời gian đó, Bernard Widrow và Ted Hoff đã đưa ra một thuật toán học
mới và sử dụng nó để huấn luyện cho các mạng nơron tuyến tính thích nghi,
mạng có cấu trúc và chức năng tương tự như mạng của Rosenblatt. Luật học
Widrow-Hoff vẫn còn được sử dụng cho đến nay.

 Tuy nhiên cả Rosenblatt và Widrow-Hoff đều cùng vấp phải một vấn đề do
Marvin Minsky và Seymour Papert phát hiện ra, đó là các mạng nhận thức chỉ

Trang 48
có khả năng giải quyết các bài toán khả phân tuyến tính. Họ cố gắng cải tiến
luật học và mạng để có thể vượt qua được hạn chế này nhưng họ đã không
thành công trong việc cải tiến luật học để có thể huấn luyện được các mạng có
cấu trúc phức tạp hơn.

 Mặc dù vậy, cũng có một vài phát kiến quan trọng vào những năm 70. Năm
1972, Teuvo Kohonen và James Anderson độc lập nhau phát triển một loại
mạng mới có thể hoạt động như một bộ nhớ. Stephen Grossberg cũng rất tích
cực trong việc khảo sát các mạng tự tổ chức (Self organizing networks).
 Vào những năm 80, những đóng góp to lớn cho mạng nơron phải kể đến
Grossberg, Kohonen, Rumelhart và Holpfield. Đóng góp chính của Holpfield là
hai mô hình dạng phản hồi: mạng rời rạc năm 1982, mạng liên tục năm 1984.
1.2 Ứng dụng
Trong quá trình phát triển, mạng nơron được ứng dụng thành công trong nhiều
lĩnh vực. Dưới đây là một số ứng dụng chính của mạng nơron:
 AeroSpace: Phi công tự động, giả lập đường bay, các hệ thống điều khiển lái
máy bay, bộ phát hiện lỗi.
 Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ phận phân tích
hoạt động xe.

 Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng.

 Defense: Định vị, phát hiện vũ khí, dò mục tiêu phát hiện đối tượng, nhập dạng
nét mặt, xử lý ảnh radar,…

 Electronics: Dự đoán mã tuần tự, phân tích nguyên nhân hỏng chíp, nhận dạng
giọng nói, mô hình phi tuyến.

 Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường.

Trang 49
1.3 Mạng nơron sinh học
Bộ não con người có khoảng 1011 các phần từ liên kết chặt chẽ với nhau gọi là
các nơron. Mỗi nơron được cấu tạo bởi các thành phần: tế bào hình cây (dendrite) – tế
bào thân (cell body) – và sợi trục thần kinh (axon). Tế bào hình cây có nhiệm vụ mang
tín hiệu điện tới tế bào thân, tế bào thân có nhiệm vụ tổng hợp (Sum) và phân ngưỡng
(Thresholds) các tín hiệu đến. Sợi trục thần kinh có nhiệm vụ đưa tín hiệu từ tế bào
thân ra ngoài.
Điểm tiếp xúc giữ một sợi trục thần kinh của nơron này và tế bào hình cây của
nơron khác được gọi là khớp thần kinh (synapse). Sự sắp xếp của các nơron và mức
độ mạnh yếu của các khớp thần kinh được quyết định bởi các quá trình hóa học phức
tạp, sẽ thiết lập chức năng của mạng nơron.
Một vài nơron có sẵn từ khi sinh ra, các phần khác được phát triển thông qua
việc học, ở đó có sự thiết lập các liên kết mới và xóa bỏ các liên kết cũ.
Cấu trúc của mạng nơron luôn luôn phát triển và thay đổi. Các thay đổi có
khuynh hướng chủ yếu là việc tăng hay giảm độ mạnh yếu của các liên kết thông qua
các khớp thần kinh.
Mạng nơron nhân tạo được phát triển dựa trên 2 đặc điểm cơ bản của mạng nơ
ron sinh học:
Mạng nơron đôi khi được xem như các mô hình liên kết, là các mô hình song
song có các đặc trưng phân biệt sau:
1. Tập các đơn vị xử lý
2. Trạng thái kích hoạt hay là đầu ra của các đơn vị xử lý.
3. Liên kết giữa các đơn vị. Mỗi liên kết được định nghĩa bởi một trọng số wik cho
biết mức độ mạnh yếu của đơn vị i có trên đơn vị k.
4. Một luật lan truyền quyết định cách tính tín hiệu ra của từng đơn vị đầu vào của
nó.
5. Một hàm kích hoạt hay hàm chuyển (active function, transfer function).
6. Một đơn vị điều chỉnh (độ lệch – bias) của mỗi đơn vị.
7. Phương pháp thu thập thông tin (luật học learning rule).

8. Môi trường hệ thống có thể kích hoạt.

Trang 50
2. Đơn vị xử lý
Một đơn vị xử lý cũng được gọi là một nơron hay một nút (node), thực hiện
một công việc đơn giản: nhận tín hiệu vào từ các đơn vị phía trước và sử dụng chúng
để tính tín hiệu ra sẽ được lan truyền sang các đơn vị khác.

Hình 4.1: Đơn vị xử lý (Processing Unit)


Trong đó:
xi: các đầu vào của đơn vị xử lý thứ i
wij: trọng số kết nối giữa đơn vị xử lý thứ i với đơn vị xử lý thứ j
θj: độ lệch (bias)
aj: đầu vào mạng (net input)
zj: đầu ra nơron
g(x): hàm kích hoạt
trong một mạng nơron có 3 kiểu đơn vị:
1. Các đơn vị đầu vào (input units), nhận tín hiệu từ đầu vào

2. Các đơn vị đầu ra (output units), gửi tín hiệu ra ngoài

3. Các đơn vị ẩn (hidden units), nằm giữa lớp đầu vào và lớp đầu ra.

Mỗi đơn vị j có một hoặc nhiều đầu vào: x1, x2, x3, …, xn, nhưng chỉ có một đầu ra zj.
Một đầu vào của đơn vị j có thể là dữ liệu từ bên ngoài mạng chuyển vào hoặc đầu ra
của một đơn vị khác hoặc đầu ra của chính nó.

Trang 51
3. Hàm xử lý
a. Hàm kết hợp
Mỗi nơron trong lớp mạng kết hợp với các giá trị đưa vào nó thông qua các liên
kết với các nơron của lớp mạng khác, sinh ra một giá trị gọi là Net Input. Hàm thực
hiện nhiệm vụ này gọi là hàm kết hợp hay thành phần tuyến tính của nơron. Tổng đầu
vào đơn vị j bằng tổng trọng số của các đầu ra từ các đơn vị kết nối cộng thêm ngưỡng
hay độ lệch (bias) θj.
n
a j = ∑ wij x j + θ j
i =1

+ Nếu wij > 0, nơron được coi như đang ở trong trạng thái kích thích.

+ Nếu wij < 0, nơron ở trạng thái kiềm chế.

θj: hằng số
b. Hàm kích hoạt
Các đầu ra của nơron sinh học là các xung, có giới hạn chặn. Trong mô phỏng,
để đảm bảo hệ ổn định đầu ra, người ta gán hàm chặn ở lối ra cho các tín hiệu. Để đặc
trưng cho điều đó, ở lối ra của mỗi nơron phải đặt một hàm chặn, thường ở dạng phi
tuyến. Kết quả của hàm này là một giá trị đặc trưng cho mức độ kích hoạt của nơron.
Có 3 dạng hàm kích hoạt thường được sử dụng:
1. Hàm dấu (Hard Limiter Function)

g(x)

0 x

-1

Hình 4.2: Hàm dạng dấu


2. Hàm bước nhị phân (Binary Step Function)
Giá trị đầu ra của hàm này được giới hạn vào một trong 2 giá trị:
g(x) ={ 10 nêu
nêu
x≥
x<
0
0

Trang 52
Dạng hàm này thường được sử dụng trong các mạng chỉ có một lớp và θj = 1.

g(x)

0 x

Hình 4.3: Hàm bước nhị phân


3. Hàm sigmoid (Sigmoid Function (logsig))

g ( x) = 1+ 1e − x
Hàm này 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 đó giảm đáng kể
các phép tính trong quá trình huấn luyện mạng. Hàm này được sử dụng cho những
ứng dụng mà giá trị đầu ra nằm trong khoảng [0;1].

Hình 4.4: Hàm sigmoid


Các hàm chuyển đối với các nơron lớp ẩn là cần thiết để biểu diễn sự phi tuyến
vào trong mạng. Lý do là hợp thành của các hàm đồng nhất là một hàm đồng nhất.
Mặc dù vậy nhưng nó mang tính chất phi tuyến (nghĩa là, khả năng biểu diễn các hàm
phi tuyến) làm cho các mạng nhiều lớp có khả năng rất tốt trong biểu diễn các ánh xạ
phi tuyến. Tuy nhiên, đối với luật học lan truyền ngược, hàm phải khả vi
(differentiable) và sẽ có ích nếu như hàm được gắn trong một khoảng nào đó. Do vậy,
hàm sigmoid là lựa chọn tốt nhất.
Đối với các đơn vị đầu ra, các hàm chuyển được chọn sao cho phù hợp với sự
phân phối của các giá trị đích mong muốn. Nếu giá trị ra trong khoảng [0;1] thì hàm
sigmoid là phù hợp nhất.

Trang 53
4. Phân loại mạng
Cấu trúc mạng được định nghĩa bởi: số lớp (layers), số nơron mỗi lớp, và sự
liên kết giữa các lớp như thế nào. Các mạng về tổng thể được chia thành 2 loại dựa
trên cách thức liên kết giữa các lớp.
a) Mạng truyền thẳng (Multilayered Feedforward Neural Network - MFNN)

Trong mạng nơron truyền thẳng, các liên kết đi theo một hướng nhất định từ
lớp vào tới lớp ra, không tạo thành đồ thị có chu trình với các đỉnh là các nơron, các
cung là các liên kết giữa chúng.

Hình 4.5: Mạng nơron truyền thẳng nhiều lớp


b) Mạng hồi quy (Recurrent Neural Network)

Cấu trúc mạng được kết nối chuyển tiếp tín hiệu từ lớp vào thông qua lớp ẩn
đến lớp ra và đồng thời hồi tiếp tín hiệu về đơn vị xử lý chính nó hoặc các đơn vị xử
lý trong lớp hoặc ở lớp khác. Mạng hồi qui cho phép các liên kết nơron tạo thành chu
trình. Vì các thông tin ra của các nơron được truyền lại cho các nơron đã góp phần
kích hoạt chúng, nên mạng hồi qui còn có khả năng lưu trữ trạng thái trong của nó
dưới dạng các ngưỡng kích hoạt ngoài các trọng số liên kết nơron.

Hình 4.6: Mạng hồi quy

Trang 54
c) Mạng tự tổ chức (Self Origanizing Feature Maps – SOM)

Con người có khả năng sử dụng kinh nghiệm quá khứ để thích nghi với những
thay đổi của môi trường. Sự thích nghi đó không cần hướng dẫn hay chỉ đạo từ bên
ngoài. Mạng nơron thực hiện theo nguyên lý đó gọi là mạng tự tổ chức. SOM được
Kohonen phát triển vào đầu thập những năm 80, nên cũng thường được gọi là mạng
Kohonen. SOM được dùng để gom cụm dữ liệu (data clustering), nghĩa là học không
có hướng dẫn (unsupervised learning).
Cấu trúc SOM thường có hai lớp: lớp đầu vào (input layer) và lớp Kohonen
(Kohonen layer). Các nơ ron của lớp đầu vào tương ứng với một thành phần trong
vector đặc trưng đang xét. Ví dụ nếu xét dữ liệu có vector đặc trưng là 4 thành phần
thì lớp đầu vào sẽ có 4 nơ ron. Mỗi nơ ron của lớp đầu vào được nối với tất cả các nơ
ron của lớp Kohonen. Các nơ ron trong lớp Kohonen được tổ chức thành một không
gian n chiều. N được gọi là số chiều của SOM. Ví dụ N=2: lớp Kohonen là một lưới 2
chiều các nơ ron. Với N=3: lớp Kohonen là một khối 3 chiều các nơ ron. Mỗi nơ ron
thuộc lớp Kohonen ngoài các giá đầu vào, đầu ra còn có vector trọng số liên kết với
các nơ ron thuộc lớp đầu vào. Hay nói cách khác, mỗi nơ ron của lớp Kohonen sẽ có
thêm một vector trọng số N chiều. Có thể xem mỗi nơ ron trong lớp Kohonen như là
đại diện cho một cụm với vector trọng số chính là vector trọng tâm của cụm đó. Thật
sự điều này không hẳn lúc nào cũng như vậy mà cần có sự linh hoạt trong việc xác
định cấu hình (số chiều) và số nơ ron trong lớp Kohonen, đây chỉ là một gợi ý cho
những ai chưa biết về SOM trong cài đặt sau này.

5. Huấn luyện mạng


Mạng nơron như một hệ thống thích nghi có khả năng học (huấn luyện) để tinh
chỉnh các trọng số liên kết cũng như cấu trúc của nó sao cho phù hợp với các mẫu học
(sample). Có hai cách học trong các mạng nơron nhân tạo đó là học cấu trúc và học
thông số:
Học cấu trúc là quá trình học thay đổi cấu trúc bên trong của mạng. Việc học
cấu trúc của mạng truyền thẳng gắn với yêu cầu tìm ra số lớp của mạng và số nơron
trên mỗi lớp. Tuy nhiên, với các mạng hồi qui còn phải xác định thêm các tham số
ngưỡng θ của các nơron trong mạng. Về thực chất, việc điều chỉnh cấu trúc mạng đều
qui về bài toán tìm kiếm tối ưu trong không gian tham số. Vì vậy, có thể áp dụng các
giải thuật tìm kiếm tối ưu (gradient, giải thuật di truyền…).

Trang 55
Học tham số là quá trình học cập nhật các trọng số kết nối giữa các đơn vị xử
lý trong mạng sao cho xấp xỉ với bộ trọng số mong muốn để có được ánh xạ vào ra
như mong muốn.

Cho wij là trọng số kết nối giữa đơn vị thứ i với đơn vị thứ j, luật học cập nhật
trọng số được thiết lập:
wij = wij + ∆wij

Trong đó:
∆wij : số gia trọng số

Xs zs
Mạng Neuron

Ds
Hiệu chỉnh W Sai số

Có 3 kỹ thuật học:
a) Học có thầy (Supervised Learning)

Trong học có thầy, mạng được cung cấp một tập mẫu học {(Xs,Ys)} theo nghĩa
Xs là các tín hiệu vào, thì kết quả ra đúng của hệ phải là Ys. Ở mỗi lần học, vectơ tín
hiệu vào Xs được đưa vào mạng, sau đó so sánh sự sai khác giữa các kết quả ra đúng
Ys với kết quả tính toán thực tế. Sai số này sẽ được dùng để hiệu chỉnh lại các trọng
số liên kết trong mạng. Quá trình cứ tiếp tục đến khi thỏa mãn một tiêu chuẩn nào đó.
b) Học không có thầy (Unsupervised Learning)

Với cách học không có thầy, không có tập mẫu dữ liệu đẩu ra mong muốn, quá
trình học với tập dữ liệu vào mong muốn, mạng tự cập nhật các trọng số kết nối dựa
trên cơ sở tập dữ liệu vào mong muốn sao cho dữ liệu ra thực sự của mạng thích nghi
với tập dữ liệu vào mong muốn.
Thể loại học này thường sử dụng dữ liệu không phân lớp và quá trình học tự
khám phá để phân lớp dữ liệu.

c) Học tăng cường (Reinforcement Learning)

Trang 56
Cũng như học có thầy, tuy nhiên, tín hiệu ra mong muốn của mạng là tín hiệu
tăng cường là tín hiệu thưởng và phạt. Quá trình học, cập nhật câc trọng số kết nối
giữa các đơn vị xử lý sao cho dữ liệu ra thực sự của mạng xấp xỉ với dữ liệu ra mong
muốn thường với độ tin cậy càng cao càng tốt.

6. Hàm đánh giá

Để huấn luyện một mạng và xét xem nó thực hiện tốt đến đâu, người ta xây
dựng hàm đánh giá để cung cấp cách thức đánh giá hệ thống một cách không nhập
nhằng. Việc chọn hàm đánh giá là rất quan trọng bới vì hàm này thể hiện các mục tiêu
thiết kế và thuật toán huấn luyện nào có thể được áp dụng. Để phát triển một hàm mục
tiêu đo chính xác cái chúng ta muốn không phải là việc dễ dàng. Hàm được sử dụng
rộng rãi là hàm tổng bình phương lỗi ( Sum Of Squares Error Function).
1 n
E= ∑
2 k =1
(d k − y k ) 2

Trong đó: E sai số gặp phải

dk: giá trị mong muốn tại đầu ra thứ k

yk: giá trị thực tế tại đầu ra thứ k

Trang 57
II. Mạng nơron truyền thẳng nhiều lớp và thuật toán lan
truyền ngược hướng
1. Kiến trúc mạng
Một mạng truyền thằng nhiều lớp bao gồm một lớp vào (Input Layer), một lớp
ra (Output Layer) và một hoặc nhiều lớp ẩn (Hidden Layer) nằm giữa lớp vào và lớp
ra. Các nơron đầu vào thực chất không phải là các nơron theo đúng nghĩa, bởi vì
chúng không thực hiện bất kỳ một tính toán nào trên dữ liệu vào mà chỉ đơn giản là
nhận dữ liệu từ bên ngoài đưa vào và chuyển cho các lớp kế tiếp. Các nơron lớp ẩn và
lớp ra mới thực sự thực hiện các tính toán, kết quả được tính toán thông qua hàm
chuyển. Cụm từ “truyền thẳng “ (Feed Forward) (không phải là trái nghĩa của lan
truyền ngược) liên quan đến một thực tế là mỗi nơron của lớp này chỉ được nối với
các nơron ở lớp kế tiếp theo một hướng, không cho phép các liên kết giữa các nơron
trong cùng lớp hoặc các liên kết ngược giữa nơron lớp vào với lớp ra.
Luồng thông tin trong mạng nơron đi từ trái qua phải, các giá trị đầu vào x
được truyền tới các nơron lớp ẩn thông qua trọng số kết nối sau đó đưa tới lớp ra.
Trọng số kết nối từ phần tử vào thứ i tới nơron ẩn thứ j được ký hiệu wij, trong khi
trọng số kết nối từ nơron ẩn thứ j tới nơron ra thứ k được ký hiệu là vjk.

Hình 4.7: Mạng truyền thẳng nhiều lớp


Mỗi nơron tính toán đầu ra của nó dựa trên mức độ kích thích nhận về từ đầu
vào. Cụ thể hơn, đầu vào của nơron được tính bằng tổng các trọng số đầu vào của nó,
đầu ra của nơron được tính toán dựa trên hàm kích hoạt.

Trang 58
Với nơron ẩn thứ j:
n +1
a j =∑wij xi +θ j , y j = f (a j )
i =1

Với nơron ra thứ k:


J +1
a k =∑vkj y j +θk , z k = f ( ak )
j =1

Hàm kích hoạt được sử dụng trong MFNN:


1
f (x ) =
1 + e −x

Hàm f đơn điệu tăng, khả vi và cho giá trị thuộc [0;1].

e −x
f ' (x ) = = (1 − f ( x )). f ( x )
1 + e −x

Cho trước một mẫu đầu vào, mạng sẽ tạo ở đầu ra giá trị thực tế z k, giá trị này
được đem so sánh với giá trị mẫu mong muốn ở đầu ra dk. Trong vấn đề phân lớp, đáp
ứng giá trị mong muốn của mỗi nơron sẽ hoặc là 0 hoặc là 1, trong khi đó các vấn đề
dự báo sử dụng giá trị liên tục. Các trọng số của mạng sau đó được hiệu chỉnh cho
đúng hoặc giảm lỗi và các mẫu tiếp theo được biểu diễn. Trọng số tiếp tục được hiệu
chỉnh cho tới khi tổng lỗi qua tất cả mẫu học được giảm tới mức cho phép. Thuật toán
học này hiểu như là thuật toán lan truyền ngược.

2. Khả năng tính toán của mạng nhiều lớp


Các mạng truyền thẳng cho ta một kiến trúc tổng quát thể hiện khả năng ánh xạ
hàm phi tuyến tính giữa một tập các mẫu đầu vào và tập các mẫu đầu ra. Khả năng thể
hiện của một mạng có thể được định nghĩa là khoảng mà nó có thể thực hiện ánh xạ
khi các trọng số biến thiên.
 Các mạng một lớp chỉ có khả năng thể hiện các hàm khả phân tuyến tính hay
các miền phân chia được (ví dụ như hàm logic AND có miền giá trị có thể phân
chia được bằng một đường thẳng trong khi miền giá trị của hàm XOR thì
không).

 Các mạng có hai lớp ẩn có khả năng thể hiện một đường biên phân chia tùy ý
với một độ chính xác bất kỳ với các hàm chuyển phân ngưỡng và có thể xấp xỉ
bất kỳ ánh xạ mịn nào với độ chính xác bất kỳ với các hàm chuyển có dạng
sigmoid.

Trang 59
 Một mạng có một lớp ẩn có thể xấp xỉ tốt bất kỳ một ánh xạ liên tục nào từ một
không gian hữu hạn sang một không gian hữu hạn khác, chỉ cần cung cấp số
nơron đủ lớn cho lớp ẩn. Chính xác hơn, các mạng truyền thẳng với một lớp ẩn
được luyện bởi các phương pháp bình phương tối thiểu (least-squares) là các bộ
xấp xỉ chính xác cho các hàm hồi quy nếu như các giả thiết về mẫu, độ nhiễu,
số đơn vị trong lớp ẩn và các nhân tố khác thỏa mãn. Các mạng nơron truyền
thẳng với một lớp ẩn sử dụng các hàm chuyển hay hàm phân ngưỡng là các bộ
xấp xỉ đa năng cho bài toán phân lớp nhị phân với các giả thiết tương tự.

3. Xác định cấu trúc mạng tối ưu


Mặc dù, về mặt lý thuyết, có tồn tại một mạng có thể mô phỏng một bài toán
với độ chính xác bất kỳ. Tuy nhiên, để có thể tìm ra mạng này không phải là điều đơn
giản. Để định nghĩa chính xác một kiến trúc mạng như: cần sử dụng bao nhiêu lớp ẩn,
mỗi lớp ẩn cần có bao nhiêu đơn vị xử lý cho một bài toán cụ thể là một công việc hết
sức khó khăn.
Dưới đây trình bày một số vấn đề cần quan tâm khi ta thiết kế một mạng.
a. Số lớp ẩn
Vì các mạng có hai lớp ẩn có thể thể hiện các hàm với dáng điệu bất kỳ, nên,
về lý thuyết, không có lý do nào sử dụng các mạng có nhiều hơn hai lớp ẩn. Thực
nghiệm đã chỉ ra rằng đối với phần lớn các bài toán cụ thể, chỉ cần sử dụng một lớp ẩn
cho mạng là đủ. Các bài toán sử dụng hai lớp ẩn hiếm khi xảy ra trong thực tế. Thậm
chí đối với các bài toán cần sử dụng nhiều hơn một lớp ẩn thì trong phần lớn các
trường hợp trong thực tế, sử dụng chỉ một lớp ẩn cho ta hiệu năng tốt hơn là sử dụng
nhiều hơn một lớp. Việc huấn luyện mạng thường rất chậm khi mà số lớp ẩn sử dụng
càng nhiều. Lý do sau đây giải thích cho việc sử dụng càng ít các lớp ẩn càng tốt là:

 Phần lớn các thuật toán luyện mạng cho các mạng nơron truyền thẳng đều dựa
trên phương pháp gradient. Các lớp thêm vào sẽ thêm việc phải lan truyền các
lỗi làm cho vector gradient rất không ổn định. Sự thành công của bất kỳ một
thuật toán tối ưu theo gradient phụ thuộc vào độ không thay đổi của hướng khi
mà các tham số thay đổi.

 Số các cực trị địa phương tăng lên rất lớn khi có nhiều lớp ẩn. Phần lớn các
thuật toán tối ưu dựa trên gradient chỉ có thể tìm ra các cực trị địa phương, do
vậy chúng có thể không tìm ra cực trị toàn cục. Mặc dù thuật toán luyện mạng

Trang 60
có thể tìm ra cực trị toàn cục, nhưng xác suất khá cao là chúng ta sẽ bị tắc trong
một cực trị địa phương sau rất nhiều thời gian lặp và khi đó, ta phải bắt đầu lại.

 Dĩ nhiên, có thể đối với một bài toán cụ thể, sử dụng nhiều hơn một lớp ẩn với
chỉ một vài đơn vị thì tốt hơn là sử dụng ít lớp ẩn với số đơn vị là lớn, đặc biệt
đối với các mạng cần phải học các hàm không liên tục. Về tổng thể, người ta
cho rằng việc đầu tiên là nên xem xét khả năng sử dụng mạng chỉ có một lớp
ẩn. Nếu dùng một lớp ẩn với một số lượng lớn các đơn vị mà không có hiệu
quả thì nên sử dụng thêm một lớp ẩn nữa với một số ít các đơn vị.
b. Số nơron trong lớp ẩn
Một vấn đề quan trọng trong việc thiết kế một mạng là cần có bao nhiêu đơn vị
trong mỗi lớp. Sử dụng quá ít đơn vị có thể dẫn đến việc không thể nhận dạng được
các tín hiệu đầy đủ trong một tập dữ liệu phức tạp, hay thiếu ăn khớp (underfitting).
Sử dụng quá nhiều đơn vị sẽ tăng thời gian luyện mạng, có lẽ là quá nhiều để luyện
khi mà không thể luyện mạng trong một khoảng thời gian hợp lý. Số lượng lớn các
đơn vị có thể dẫn đến tình trạng thừa ăn khớp (overfitting), trong trường hợp này
mạng có quá nhiều thông tin, hoặc lượng thông tin trong tập dữ liệu mẫu (training set)
không đủ các dữ liệu đặc trưng để huấn luyện mạng. Số lượng tốt nhất của các đơn vị
ẩn phụ thuộc vào rất nhiều yếu tố - số đầu vào, đầu ra của mạng, số trường hợp trong
tập mẫu, độ nhiễu của dữ liệu đích, độ phức tạp của hàm lỗi, kiến trúc mạng và thuật
toán huấn luyện mạng.
Có rất nhiều “luật” để lựa chọn số đơn vị trong các lớp ẩn:

• Nằm giữa khoảng kích thước lớp vào, lớp ra.

• 2/3 tổng kích thước lớp vào và lớp ra.

• Nhỏ hơn hai lần kích thước lớp vào.

• Căn bậc hai của tích kich thước lớp vào và lớp ra.
Các luật này chỉ có thể được coi như là các lựa chọn thô khi chọn lựa kích
thước của các lớp. Chúng không phản ánh được thực tế, bởi lẽ chúng chỉ xem xét đến
nhân tố kích thước đầu vào, đầu ra mà bỏ qua các nhân tố quan trọng khác như: số
trường hợp đưa vào huấn luyện, độ nhiễu ở các đầu ra mong muốn, độ phức tạp của
hàm lỗi, kiến trúc của mạng (truyền thẳng hay hồi quy), và thuật toán học.
Trong phần lớn các trường hợp, không có một cách để có thể dễ dàng xác định
được số tối ưu các đơn vị trong lớp ẩn mà không phải luyện mạng sử dụng số các đơn

Trang 61
vị trong lớp ẩn khác nhau và dự báo lỗi tổng quát hóa của từng lựa chọn. Cách tốt nhất
là sử dụng phương pháp thử-sai (trial-and-error). Trong thực tế, có thể sử dụng
phương pháp Lựa chọn tiến (forward selection) hay Lựa chọn lùi (backward selection)
để xác định số đơn vị trong lớp ẩn.
Lựa chọn tiến bắt đầu với việc chọn một luật hợp lý cho việc đánh giá hiệu
năng của mạng. Sau đó, ta chọn một số nhỏ các đơn vị ẩn, luyện và thử mạng; ghi lại
hiệu năng của mạng. Sau đó, tăng một chút số đơn vị ẩn; luyện và thử lại cho đến khi
lỗi là chấp nhận được, hoặc không có tiến triển đáng kể so với trước. Lựa chọn lùi,
ngược với lựa chọn tiến, bắt đầu với một số lớn các đơn vị trong lớp ẩn, sau đó giảm
dần đi. Quá trình này rất tốn thời gian nhưng sẽ giúp ta tìm được số lượng đơn vị phù
hợp cho lớp ẩn.

4. Huấn luyện mạng bằng thuật toán lan truyền ngược


Cần có một sự phân biệt giữa kiến trúc của một mạng và thuật toán học của nó,
các mô tả trong các mục trên, mục đích là nhằm làm rõ các yếu tố về kiến trúc của
mạng và cách mà mạng tính toán các đầu ra từ tập các đầu vào. Sau đây là mô tả của
thuật toán học sử dụng để điều chỉnh hiệu năng của mạng sao cho mạng có khả năng
sinh ra được các kết quả mong muốn. Như đã nêu, về cơ bản có hai dạng thuật toán để
luyện mạng: học có thầy và học không có thầy. Các mạng nơron truyền thẳng nhiều
lớp được luyện bằng phương pháp học có thầy. Phương pháp này căn bản dựa trên
việc yêu cầu mạng thực hiện chức năng của nó và sau đó trả lại kết quả, kết hợp kết
quả này với các đầu ra mong muốn để điều chỉnh các tham số của mạng, nghĩa là
mạng sẽ học thông qua những sai sót của nó.
Thuật toán lan truyền ngược hướng được sử dụng để hiệu chỉnh các trọng số
kết nối sao cho tổng sai số E nhỏ nhất.
K
E = ∑(d k − z k ) 2
k =1

Phương pháp hiệu chỉnh trọng số liên kết nơron dựa trên nguyên tắc lan truyền
ngược sai số có thể lý giải dựa trên nguyên lý tìm kiếm gradient trong không gian
tham số trọng số kết nối sao cho cực tiểu hàm sai số tổng cộng:
1 K 1 K 2
E= ∑ k k
2 k =1
(d − z ) 2
, Đặt ek = ( d k − z k ) ⇒ E = ∑ek
2 k =1

Lấy đạo hàm riêng của E theo vjk:

Trang 62
∂E ∂E ∂ek ∂z k ∂a k
= ∗ ∗ ∗ (1)
∂v jk ∂ek ∂z k ∂a k ∂v jk

Trong đó:

1 K 
∂ ∑ ek2 
∂E 2 (1.1)
=  k =1  = ek
∂ek ∂ek

∂ek ∂(d k − z k )
= = −1 (1.2)
∂z k ∂z k

∂z k ∂( f (a k ))
= = f ' (a k ) (1.3)
∂a k ∂a k

 J +1 
∂ ∑v jk y j 
∂a k (1.4)
=  =y
j =1
j
∂v jk ∂v jk

Thay (1.1), (1.2), (1.3), (1.4) vào công thức (1) ta được:
∂E
⇒ = −ek ∗ f ' (ak ) ∗ y j = −δk ∗ y j (1.5)
∂v jk

δk = ek ∗ f ' (ak ) = ( d k − z k ). f ( ak ).(1 − f ( ak )) (1.6)


Lấy đạo hàm riêng của E theo wij:
∂E ∂E ∂y j ∂a j
= ∗ ∗ (2)
∂wij ∂y j ∂a j ∂wij

Trong đó:
∂y j ∂( f ( a j ))
= = f ' (a j ) (2.1)
∂a j ∂a j

n +1

∂a j ∑w ij xj
(2.2)
= i =1
= xi
∂wij ∂wij

1 K 2 
∂ ∑ ek 
∂E 2 K
∂e (2.3)
=  k =1  = ∑ ek . k
∂y j ∂y j k =1 ∂y j

∂ek ∂e ∂a
= k ∗ k (2.3.1)
∂y j ∂ak ∂y j

Trang 63
∂ek ∂ ( d k − z k ) ∂ ( d k − f (ak ) )
= = = − f ' (a k ) (2.3.1.1)
∂ak ∂ak ∂ak

 J +1 
∂ ∑v jk y j 
∂a k (2.3.1.2)
=   =v
j =1
jk
∂y j ∂y j

Thay (2.3.1.1), (2.3.1.2) vào (2.3.1) ta được:


∂ek
⇒ = − f ' ( a k ).v jk (2.3.2)
∂y j

Thay (2.3.2) vào (2.3.1) ta được:


∂E K
⇒ = ∑ek .( − f ' ( a k )). v jk (2.4)
∂y j k =1

Thay (2.1), (2.2), (2.4) vào (2) ta được:

∂E K
 K 
⇒ = (∑ek .( − f ' (ak )). v jk ). f ' (a j ). xi = − y ' (a j ). ∑δ k .v jk .xi = −δ j .xi (2.5)
∂wij k =1  k =1 

 K   K 
δ j = y ' (a j ). ∑ δ k .v jk  = f (a j ).(1 − f (a j ). ∑ δ k .v jk  (2.6)
 k =1   k =1 

Việc hiệu chỉnh vectơ trọng số W={wij}, V={vjk} sao cho E → min dẫn tới việc
xác định vectơ gia số ∆W = ∆wij , ∆V = ∆v jk ngược hướng với vectơ gradient ∂E ∂wij
và ∂E ∂v jk . Nói cách khác:
∆v jk = −α.( −δk . y i ) = α.δk . y i (3)
∆wij = −α.( −δ j .x i ) =α.δ j .xi (Với α: hệ số học) (4)
Giải thuật học lan truyền ngược cập nhật trọng số kết nối trong mạng được cài
đặt gồm các bước sau:

Bước 1: Nhập tập mẫu huấn luyện vào, ra mong muôn {Xs, Ds}

Trong đó: Xs là vectơ mẫu vào Xs = {x1, x2, x3,… ,xn}

Ds là vectơ mẫu ra Ds ={d1,d2,d3,…, dJ}

Khởi tạo wij ∈[ − 0.5,0.5]

Bước 2: Tính giá trị đầu vào và đầu ra cho nơron lớp ẩn.

Trang 64
n +1
a j = ∑wij xi + θ j , y j = f ( a j )
i =1

Bước 3: Tính giá trị đầu vào và đầu ra cho nơron lớp ra.
J +1
a k =∑v jk y j +θk , z k = f (ak )
j =1

Bước 4: Hiệu chỉnh trọng số liên kết dẫn đến lớp ra.
δk = (d k − z k ). f ( ak ).( 1 − f (ak )) theo (1.6)

∆v jk = β.∆v jk +α.δ j . y i theo (3)


v jk = v jk + ∆v jk

∆θk = α.δ k , ∆θ k = θ k + ∆θ k

Bước 5: Hiệu chỉnh trọng số liên kết dẫn đến lớp ẩn.

 K 
δ j = f (a j ).(1 − f (a j ). ∑δ k .v jk  theo (2.6)
 k =1 
∆wij = β.∆wij +α.δ j .xi theo (4)
wij = wij + ∆wij

∆θ j =α.δ j , ∆θ j = θ j + ∆θ j

Bước 6: Tính sai số gặp phải


K
E = E + ∑(d k − z k ) 2
k =1

Lặp lại từ Bước 1 cho tới khi tất cả các mẫu được biểu diễn (một vòng lặp-one epoch)
Bước 7: Nếu giá trị E đạt mức chấp nhận được cho trước (0.00001) thì dừng quá trình
huấn luyện mạng. Ngược lại, gán E=0, và lặp từ bước 1 cho vòng lặp khác.

5. Sự hội tụ và độ phức tạp của quá trình huấn luyện mạng


Độ phức tạp thời gian của mạng nhiều lớp chủ yếu phụ thuộc vào thời gian
huấn luyện mạng với tập mẫu nào đó. Giả sử có m mẫu vào và |ws| trọng số. Mỗi lần
đưa tất cả các mẫu đi qua mạng (gọi là một vòng lặp - one epoch) phải tốn O(m.|w s| )
thao tác trên nơron. Trong trường hợp xấu nhất, số vòng lặp sẽ phụ thuộc hàm mũ và
số đầu vào n. Do đó, chi phí thời gian sẽ là O(kn.m.|ws|).

Trang 65
III. Ứng dụng mạng nơron truyền thẳng vào dự dữ liệu.
1. Sơ lược về dự báo dữ liệu
Sử dụng mạng nơron huấn luyện bởi thuật toán lan truyền ngược là phương
pháp hữu hiệu khi tiếp cận bài toán dự báo dữ liệu. Để sử dụng mạng nơron chúng ta
cần phải cân nhắc, lựa chọn các tham số như:

 Số lớp ẩn

 Số nơron cho mỗi lớp

 Hằng số học

 Khoảng, khuân dạng dữ liệu đưa vào huấn luyện

 Hàm kích hoạt

 Bộ trọng số ban đầu

 Hệ số quán tính (Momentium)


Việc dự báo là vấn đề phức tạp, cả về số lượng dữ liệu cần quan tâm cũng như
độ chính xác của dữ liệu dự báo. Do đó, việc lựa chọn một cấu trúc mạng phù hợp cho
việc dự báo là một việc rất khó khăn (chỉ có thể bằng phương pháp thử sai). Tuy
nhiên, việc sử dụng thuật toán lan truyền ngược đã được thực tế chứng minh là một
công cụ tốt cho các bài toán trong lĩnh vực dự báo dữ liệu.
Do đặc trưng về độ phức tạp dữ liệu, các dữ liệu đầu ra thường là các con số
(mảng các số) dấu phảy động cho nên việc lựa chọn cấu trúc mạng phù hợp thường là
sử dụng phương pháp thử-sai (trial and errors). Đồng thời cần phải chuẩn hóa (loại bỏ
các dữ liệu sai, thừa, đưa chúng về đoạn [0,1] hoặc [-1,1],...) các dữ liệu đầu vào và
đầu ra để mạng có khả năng học tốt hơn từ các dữ liệu được cung cấp. Trong việc dự
báo dữ liệu, nếu dữ liệu ở nhiều khoảng thời gian khác nhau được đưa vào mạng để
huấn luyện thì việc dự báo chính xác là rất khó nếu như mục đích là dự báo chính xác
100% dữ liệu trong tương lai. Ta chỉ có thể có được kết quả dự báo với một mức độ
chính xác nào đó chấp nhận được.

2. Thu thập, phân tích và xử lý dữ liệu


Dữ liệu đóng một vai trò rất quan trọng trong các giải pháp sử dụng mạng
nơron. Chất lượng, độ tin cậy, tính sẵn có và phù hợp của dữ liệu được sử dụng để
phát triển hệ thống giúp cho các giải pháp thành công. Các mô hình đơn giản cũng có
thể đạt được những kết quả nhất định nếu như dữ liệu được xử lý tốt, bộc lộ được các

Trang 66
thông tin quan trọng. Bên cạnh đó, các mô hình tốt có thể sẽ không cho ta các kết quả
mong muốn nếu dữ liệu đưa vào quá phức tạp và rắc rối.
Việc xử lý dữ liệu bắt đầu bằng việc thu thập và phân tích dữ liệu, sau đó là
bước tiền xử lý. Dữ liệu sau khi qua bước tiền xử lý được đưa vào mạng nơron. Cuối
cùng, dữ liệu đầu ra của mạng nơron qua bước hậu xử lý, bước này sẽ thực hiện biến
đổi kết quả trả về của mạng nơron sang dạng hiểu được theo yêu cầu của bài toán
(Hình 15). Sau đây, trong các mục tiếp theo, ta sẽ đi vào xem xét từng bước trong quá
trình xử lý dữ liệu.

Thu thập , phân tích


dữ liệu

Tiền xử lý

Mạng nơron

Hậu xử lý

2.1 Thu thập dữ liệu

2.1.1 Xác đinh yêu cầu dữ liệu


Điều đầu tiên cần thực hiện khi lập kế hoạch thu thập dữ liệu là xác định xem
dữ liệu nào là cần thiết để có thể giải quyết bài toán. Ta cần phải xác định:

 Các dữ liệu có liên quan chắc chắn đến bài toán

Trang 67
 Các dữ liệu có thể liên quan

 Các dữ liệu nào là phụ trợ


Dư liệu có liên quan và có thể liên quan đến bài toán phải được xem là các tham số
đầu vào của hệ thống.

2.1.2 Xác định nguồn dữ liệu


Bước kế tiếp là quyết định nơi sẽ lấy dữ liệu, điều này cho phép ta xác định
được các ước lượng thực tế về những khó khăn và phí tổn cho việc thu thập dữ liệu.
Nếu ứng dụng yêu cầu các dữ liệu thời gian thực, những ước lượng này cần tính đến
khả năng chuyển đổi các dữ liệu tương tự thành dạng số.
Trong một số trường hợp, ta có thể chọn lựa dữ liệu mô phỏng từ các tình
huống thực tế. Tuy nhiên, cần phải quan tâm đến độ chính xác và khả năng thể hiện
của dữ liệu đối với các trường hợp cụ thể.
2.1.3 Xác định lượng dữ liệu
Ta cần phải ước đoán số lượng dữ liệu cần thiết để có thể sử dụng trong việc
xây dựng mạng. Nếu lấy quá ít dữ liệu thì những dữ liệu này sẽ không thể phản ánh
toàn bộ các thuộc tính mà mạng cần phải học và do đó mạng sẽ không có được phản
ứng mong đợi đối với những dữ liệu mà nó chưa được huấn luyện. Mặt khác, cũng
không nên đưa vào huấn luyệncho mạng quá nhiều dữ liệu. Về tổng thể, lượng dữ liệu
cần thiết bị chi phối bởi số các trường hợp cần luyện cho mạng. Bản chất đa chiều của
dữ liệu và cách giải quyết mong muốn là các nhân tố chính xác định số các trường hợp
cần luyện cho mạng và kéo theo là lượng dữ liệu cần thiết.
Việc định lượng gần đúng lượng dữ liệu cần đưa vào luyện mạng là hết sức cần
thiết. Thông thường, dữ liệu thường thiếu hoàn chỉnh, do đó nếu muốn mạng có khả
năng thực hiện được những điều mà ta mong đợi thì nó cần phải được luyện với lượng
dữ liệu lớn hơn. Đương nhiên, nếu có được độ chính xác và hoàn chỉnh của dữ liệu thì
số các trường hợp cần thiết phải đưa vào mạng có thể giảm đi.
2.2 Phân tích dữ liệu
Có hai kỹ thuật cơ bản giúp ta có thể hiểu được dữ liệu:

2.2.1. Phân tích thống kê


Mạng nơron có thể được xem như là một mở rộng của các phương pháp thống
kê chuẩn. Các thử nghiệm có thể cho ta biết được khả năng mà mạng có thể thực hiện.
Hơn nữa, phân tích có thể cho ta các đầu mối để xác định các đặc trưng, ví dụ, nếu dữ

Trang 68
liệu được chia thành các lớp, các thử nghiệm thống kê có thể xác định được khả năng
phân biệt các lớp trong dữ liệu thô hoặc dữ liệu đã qua tiền xử lý.

2.2.2. Trực quan hóa dữ liệu


Trực quan hóa dữ liệu bằng cách vẽ biểu đồ trên các dữ liệu theo một dạng
thích hợp sẽ cho ta thấy được các đặc trưng phân biệt của dữ liệu, chẳng hạn như: các
điểm lệch hay các điểm đỉnh. Điều này nếu thực hiện được, có thể áp dụng thêm các
thao tác tiền xử lý để tăng cường các đặc trưng đó.
Thông thường, phân tích dữ liệu bao gồm cả các kiểm tra thống kê và trực quan
hóa. Các kiểm tra này sẽ được lặp đi lặp lại. Trực quan hóa cho ta sự đánh giá về dữ
liệu và các khái niệm sơ khởi về các mẫu nằm sau dữ liệu. Trong khi các phương pháp
thống kê cho phép ta kiểm thử những khái niệm này.
2.3 Xử lý dữ liệu

2.3.1 Dẫn nhập về xử lý dữ liệu


Khi những dữ liệu thô đã được thu thập, chúng cần phải được chuyển đổi sang
các khuôn dạng phù hợp để có thể đưa vào luyện mạng. Ở bước này, ta cần thực hiện
các công việc sau:
Kiểm tra tính hợp lệ dữ liệu (Data validity checks)
Việc kiểm tra tính hợp lệ sẽ phát hiện ra các dữ liệu không thể chấp nhận được
mà nếu sử dụng chúng thì sẽ cho ra các kết quả không tốt.
Nếu có một mẫu cho một phân bố sai của dữ liệu (ví dụ, nếu phần lớn dữ liệu
được thu thập ở một ngày trong tuần) ta cần xem xét nguyên nhân của nó. Dựa trên
bản chất của nguyên nhân dẫn đến sai lầm, ta có thể hoặc phải loại bỏ các dữ liệu này,
hoặc cho phép những thiếu sót đó. Nếu có các thành phần quyết định không mong
muốn như là các xu hướng hay các biến thiên có tính chất mùa vụ, chúng cần được
loại bỏ ngay.
Phân hoạch dữ liệu (Partitioning data)
Phân hoạch là quá trình chia dữ liệu thành các tập kiểm định, huấn luyện, và
kiểm tra. Theo định nghĩa, tập kiểm định được sử dụng để xác định kiến trúc của
mạng; các tập huấn luyện được dùng để cập nhật các trọng số của mạng; các tập kiểm
tra được dùng để kiểm tra hiệu năng của mạng sau khi luyện. Ta cần phải đảm bảo
rằng:

Trang 69
a) Tập huấn luyện chứa đủ dữ liệu, các dữ liệu đó phân bố phù hợp sao cho có
thể biểu diễn các thuộc tính mà ta muốn mạng sẽ học được.
b) Không có dữ liệu trùng nhau hay tương tự nhau của các dữ liệu trong các tập
dữ liệu khác nhau.

2.3.2. Tiền xử lý
Về mặt lý thuyết, một mạng nơron có thể dùng để ánh xạ các dữ liệu thô đầu
vào trực tiếp thành các dữ liệu đầu ra. Nhưng trong thực tế, việc sử dụng quá trình tiền
xử lý cho dữ liệu thường mang lại những hiệu quả nhất định trước khi những dữ liệu
này được đưa vào mạng. Có rất nhiều kỹ thuật liên quan đến tiền xử lý dữ liệu. Tiền
xử lý dữ liệu có thể là thực hiện lọc dữ liệu (trong dữ liệu biến thiên theo thời gian
time-series) hay các phương pháp phức tạp hơn như là các phương pháp kết xuất, trích
chọn các đặc trưng từ dữ liệu ảnh tĩnh (image data). Bởi lẽ việc chọn thuật toán dùng
trong tiền xử lý dữ liệu là phụ thuộc vào ứng dụng và bản chất của dữ liệu, cho nên,
các khả năng lựa chọn là rất lớn. Tuy nhiên, mục đích của các thuật toán tiền xử lý dữ
liệu thường tương tự nhau, như sau:
1) Chuyển đổi dữ liệu về khuôn dạng phù hợp đối với đầu vào mạng nơron -
điều này thường đơn giản hóa quá trình xử lý của mạng phải thực hiện trong thời gian
ngắn hơn.
Các chuyển đổi này có thể bao gồm:
• Áp dụng một hàm toán học (hàm logarit hay bình phương) cho đầu vào;
• Mã hóa các dữ liệu văn bản trong cơ sở dữ liệu;
• Chuyển đổi dữ liệu sao cho nó có giá trị nằm trong khoảng [0, 1].
• Lấy biến đổi Fourier cho các dữ liệu thời gian.
2) Lựa chọn các dữ liệu xác đáng nhất - việc lựa chọn này có thể bao gồm các
thao tác đơn giản như lọc hay lấy tổ hợp của các đầu vào để tối ưu hóa nội dung của
dữ liệu. Điều này đặc biệt quan trọng khi mà dữ liệu có nhiễu hoặc chứa các thông tin
thừa. Việc lựa chọn cẩn thận các dữ liệu phù hợp sẽ làm cho mạng dễ xây dựng và
tăng cường hiệu năng của chúng đối với các dữ liệu nhiễu.
3) Tối thiểu hóa số các đầu vào mạng - giảm số chiều của dữ liệu đầu vào và
tối thiểu số các mẫu đưa vào có thể đơn giản hóa được bài toán. Trong một số trường
hợp - chẳng hạn trong xử lý ảnh – ta không thể nào đưa tất cả các dữ liệu vào mạng.
Ví dụ như trong ứng dụng nhận dạng ảnh, mỗi một ảnh có thể chứa hàng triệu điểm

Trang 70
ảnh, khi đó rõ ràng là không khả thi nếu sử dụng nhiều đầu vào như vậy. Trong trường
hợp này, việc tiền xử lý cần thực hiện giảm số đầu vào của dữ liệu bằng cách sử dụng
các tham số đơn giản hơn chẳng hạn như sử dụng các tham số vùng ảnh và tỷ lệ chiều
dài/chiều cao. Quá trình này còn gọi là trích chọn dấu hiệu (feature extraction).

2.3.3 Hậu xử lý
Hậu xử lý bao gồm các xử lý áp dụng cho đầu ra của mạng. Cũng như đối với
tiền xử lý, hậu xử lý hoàn toàn phụ thuộc vào các ứng dụng cụ thể và có thể bao gồm
cả việc phát hiện các tham số có giá trị vượt quá khoảng cho phép hoặc sử dụng đầu ra
của mạng như một đầu vào của một hệ khác, chẳng hạn như một bộ xử lý dựa trên
luật. Đôi khi, hậu xử lý chỉ đơn giản là quá trình ngược lại đối với quá trình tiền xử lý.

3.2.4. Tổng hợp


Trong thực tế khi xây dựng các mạng nơron ứng dụng trong lĩnh vực dự báo dữ
liệu, việc áp dụng các phương pháp tiền xử lý dữ liệu đầu vào (và sau đó áp dụng
phương pháp hậu xử lý để biến đổi đầu ra về dạng phù hợp) giúp ích rất nhiều trong
các ứng dụng. Như đã nêu ở trên, có rất nhiều các phương pháp có thể áp dụng cho dữ
liệu ở quá trình tiền xử lý cũng như hậu xử lý. Các phương pháp này thực sự hiệu quả
cho các bài toán cụ thể bởi lẽ chúng làm giảm bớt đi độ phức tạp của dữ liệu đầu vào,
từ đó làm giảm thời gian học của mạng nơron.
Các phương pháp xử lý dữ liệu còn phụ thuộc vào công việc thu thập, phân tích
và lựa chọn dữ liệu đầu vào cho mạng. Đây cũng là yếu tố quyết định cho sự thành
công của các ứng dụng mạng nơron. Việc dữ liệu được chuẩn hóa trước khi đưa vào
mạng huấn luyện có thể làm giảm bớt thời gian mạng học, làm tăng độ chính xác cho
dữ liệu dự báo. Điều này rất có ý nghĩa bởi lẽ thuật toán lan truyền ngược khi thực thi
rất tốn thời gian!
3. Áp dụng xây dựng chương trình dự báo dữ liệu

3.1 Các bước chính trong quá trình thiết kế và xây dựng
Trước hết, dưới đây nêu ra các bước chính trong quá trình thiết kế và xây dựng
một ứng dụng dựa trên mạng nơron. Có rất nhiều vấn đề cần phải xem xét khi xây
dựng mạng nơron nhiều lớp sử dụng thuật toán lan truyền ngược:
Tiền xử lý dữ liệu
Tần số của dữ liệu: hàng ngày, hàng tuần, hàng tháng hay hàng quý.
Kiểu dữ liệu: các chỉ số kỹ thuật hay các chỉ số căn bản.

Trang 71
Cách thức chuẩn hóa dữ liệu: max/min hay Trung bình/Độ lệch chuẩn
(standard deviation).
Huấn luyện
Hệ số học.
Hệ số bước đà.
Hệ số thứ lỗi.
Số chu kỳ tối đa.
Hệ số học tối đa.
Thực hiện lấy ngẫu nhiên trọng số.
Kích thước của các tập huấn luyện, kiểm tra, và kiểm định.
Cấu trúc mạng (topology)
Số đầu vào.
Số lớp ẩn.
Số nơron trong các lớp.
Số nơron đầu ra.
Hàm chuyển cho các nơron.
Hàm lỗi.
Dưới đây là các bước chính cần thực hiện khi thiết kế mô hình mạng nơron sử dụng
cho bài toán dự báo:
i) Chọn lựa các biến.
ii) Thu thập dữ liệu.
iii) Tiền xử lý dữ liệu.
iv) Phân chia tập dữ liệu thành các tập: huấn luyện, kiểm tra, kiểm định.
v) Xác định cấu trúc mạng:
• số lớp ẩn.
• số nơron trong các lớp ẩn.
• số nơron đầu ra.
• các hàm chuyển.

Trang 72
vi) Xác định tiêu chuẩn đánh giá (hàm lỗi)
vii) Huấn luyện mạng.
viii) Thực thi trong thực tế.
Trong khi thực hiện, không nhất thiết phải theo thứ tự các bước mà có thể quay
lại các bước trước đó, đặc biệt là ở bước huấn luyện và lựa chọn các biến.

Bước 1: Chọn lựa các biến


Trong bài toán dự báo các dữ liệu thương mại thì các học thuyết kinh tế có thể
giúp chọn lựa các biến là các chỉ số kinh tế quan trọng. Đối với một bài toán cụ thể
cần thực hiện xem xét các vấn đề lý thuyết mà từ đó sẽ xác định được các nhân tố ảnh
hưởng đến bài toán. Tại bước này trong quá trình thiết kế, điều cần quan tâm đó là các
dữ liệu thô từ đó có thể phát triển thành các chỉ số quan trọng. Các chỉ số này sẽ tạo ra
các đầu vào cho mạng.
Bước 2: Thu thập dữ liệu
Cần xem xét khả năng có thể thu thập được các dữ liệu. Các dữ liệu kỹ thuật có
thể thu thập được dễ dàng hơn là các dữ liệu cơ bản. Mặt khác, các dữ liệu sau khi thu
thập cần được kiểm tra tính hợp lệ của chúng. Đồng thời, các dữ liệu bị thiếu sót cần
được xử lý cẩn thận, có thể bỏ qua chúng hoặc giả sử rằng các dữ liệu bị thiếu đó
không thay đổi so với dữ liệu trước nó.
Bước 3: Tiền xử lý dữ liệu
Tiền xử lý dữ liệu liên quan đến việc phân tích và chuyển đổi giá trị các tham
số đầu vào, đầu ra mạng để tối thiểu hóa nhiễu, nhấn mạnh các đặc trưng quan trọng,
phát hiện các xu hướng và cân bằng phân bố của dữ liệu. Các đầu vào, đầu ra của
mạng nơron hiếm khi được đưa trực tiếp vào mạng. Chúng thường được chuẩn hóa
vào khoảng giữa cận trên và cận dưới của hàm chuyển (thường là giữa đoạn [0;1] hoặc
[-1;1]).
Các phương pháp phổ biến có thể là:
SV = ((0.9 - 0.1) / (MAX_VAL - MIN_VAL)) * (OV - MIN_VAL)
hoặc đưa về khoảng giữa giá trị min và max:

Trang 73
SV = TFmin + ((TFmax - TFmin) / (MAX_VAL - MIN_VAL)) * (OV -
MIN_VAL)
trong đó:
SV: Giá trị sau khi biến đổi
MAX_VAL: Giá trị lớn nhất của dữ liệu
MIN_VAL: Giá trị nhỏ nhất của dữ liệu
TFmax: Giá trị lớn nhất của hàm chuyển
TFmin: Giá trị nhỏ nhất của hàm chuyển
OV: Giá trị ban đầu
Bước 4: Phân chia tập dữ liệu
Trong thực tế, khi huấn luyện, người ta thường chia tập dữ liệu thành các tập:
Huấn luyện, kiểm tra và kiểm định (ngoài các mẫu). Tập huấn luyện thường là tập lớn
nhất được sử dụng để huấn luyện cho mạng. Tập kiểm tra thường chứa khoảng 10%
đến 30% tập dữ liệu huấn luyện, được sử dụng để kiểm tra mức độ tổng quát hóa của
mạng sau khi huấn luyện. Kích thước của tập kiểm định cần được cân bằng giữa việc
cần có đủ số mẫu để có thể kiểm tra mạng đã được huấn luyện và việc cần có đủ các
mẫu còn lại cho cả pha huấn luyện và kiểm tra.
Có hai cách thực hiện xác định tập kiểm tra. Một là lấy ngẫu nhiên các mẫu từ
tập huấn luyện ban đầu. Lợi điểm của cách này là có thể tránh được nguy hiểm khi mà
đoạn dữ liệu được chọn có thể chỉ điển hình cho một tính chất của dữ liệu (đang tăng
hoặc đang giảm). Hai là chỉ lấy các dữ liệu ở phần sau của tập huấn luyện, trong
trường hợp các dữ liệu gần với hiện tại là quan trọng hơn các dữ liệu quá khứ.
Bước 5: Xác định cấu trúc mạng
Phương pháp thực hiện xây dựng mạng nơron bao gồm việc xác định sự liên
kết giữa các nơron, đồng thời xác định cấu trúc của mạng bao gồm số lớp ẩn, số nơron
trong từng lớp.
Tuy nhiên, các thực nghiệm cho thấy rằng, số lớp ẩn sử dụng trong mạng
không nên vượt quá 4 lớp. Ngoài ra, không có phương pháp nào có thể chọn được số
tối ưu các nơron sử dụng trong lớp ẩn. Mặc dù vậy cũng có một số phương pháp cho
ta lựa chọn ban đầu. Nhưng để có được số tối ưu các nơron trong các lớp ẩn thì người
phát triển mô hình cần phải thực hiện nhiều thí nghiệm để có được nó. Bên cạnh đó,

Trang 74
việc chọn lựa số các đầu vào mạng cũng mang một tính chất quyết định đến cấu trúc
của mạng để có được khả năng tổng quát hóa tốt.
Ta có thể thực hiện lựa chọn số nơron trong các lớp ẩn bằng cách bắt đầu bằng
một số nào đó dựa trên các luật. Sau khi thực hiện huấn luyện, kiểm tra lỗi tổng quát
hóa của từng cấu trúc, có thể tăng hoặc giảm số các nơron.
Bất kể phương pháp nào thì luật tổng quát nhất là thực hiện chọn cấu trúc mạng
cho ta lỗi tổng quát hóa trên tập dữ liệu huấn luyện là nhỏ nhất. Khi thực hiện điều
chỉnh, nên giữ các tham số còn lại không thay đổi để tránh tạo ra các cấu trúc khác có
khả năng đưa lại các phức tạp không cần thiết trong quá trình lựa chọn số tối ưu các
nơron trong lớp ẩn.

Bước 6: Xác định tiêu chuẩn đánh giá


Hàm được sử dụng để đánh giá mạng thường là hàm trung bình bình phương
lỗi. Các hàm khác có thể là hàm độ lệch nhỏ nhất (least absolute deviation), hiệu phần
trăm (percentage differences), bình phương nhỏ nhất bất đối xứng (asymetric least
squares),... Tuy nhiên, các hàm này có thể không phải là hàm đánh giá chất lượng cuối
cùng cho mạng. Phương pháp đánh giá các giá trị dự báo hay được sử dụng là giá trị
trung bình tuyệt đối phần trăm lỗi (Mean Absolute Percentage Error - MAPE).
Chẳng hạn trong các hệ thống bán hàng, các giá trị dự báo của mạng nơron sẽ
được chuyển sang tín hiệu mua hoặc bán tùy thuộc vào một tiêu chuẩn xác định trước
đó.
Bước 7: Huấn luyện mạng
Huấn luyện mạng học các dữ liệu bằng cách lần lượt đưa các mẫu vào cùng với
những giá trị mong muốn. Mục tiêu của việc huấn luyện mạng đó là tìm ra tập các
trọng số cho ta giá trị nhỏ nhất toàn cục của chỉ số hiệu năng hay hàm lỗi.
Vấn đề đặt ra là khi nào thì ngừng huấn luyện. Có hai quan điểm trong vấn đề
này. Quan điểm thứ nhất cho rằng chỉ nên ngừng huấn luyện chừng nào không có tiến
triển nào của hàm lỗi nữa đối với dữ liệu dựa trên một số tập các tham số của mạng
được chọn ngẫu nhiên. Nói cách khác là xác định được khả năng đạt đến được điểm
cực tiểu toàn cục lớn nhất. Trường phái thứ hai cho rằng cần thực hiện xem xét
thường xuyên khả năng tổng quát hóa của mạng bằng cách sau một số chu kỳ nào đó
thực hiện kiểm tra và kiểm tra sự tổng quát hóa của mạng, sau đó lại tiếp tục quá trình
huấn luyện.

Trang 75
Cả hai quan điểm này đều thống nhất rằng kết quả kiểm tra trên tập kiểm định
là chính xác nhất bởi lẽ nó thể hiện trực tiếp kết quả trả lời của mạng sau khi được
huấn luyện. Việc thực hiện huấn luyện mạng còn cần phải xem xét khả năng của mạng
nơron với một số nào đó lần thực hiện huấn luyện mạng trên các tập khởi tạo ban đầu
của các tham số. Sau khi thực hiện huấn luyện trên tất cả các tham số này cần thực
hiện đánh giá lại kết quả, từ đó đưa ra kết luận về số lần tối đa thực hiện huấn luyện
cho mạng cho từng bài toán cụ thể của mình. Một phương pháp khác là thực hiện vẽ
đồ thị để có thể theo dõi trạng thái lỗi của mạng, từ đó có thể quan sát được các vùng
mà mạng có trạng thái không thay đổi đối với dữ liệu vào. Thông thường, số lần tối đa
thực hiện huấn luyện cho mạng thường có khoảng biến thiên khá lớn: từ vài nghìn cho
đến vài chục, vài trăm nghìn chu kỳ, việc theo dõi được trạng thái của mạng đối với
tập huấn luyện và khả năng tổng quát hóa để có thể ngừng khi cần là khá quan trọng.
Có thể thực hiện cập nhật đồ thị sau mỗi chu kỳ để có thể theo dõi được các tham số
này.
Bước 8: Thực thi
Bước thực thi thực ra cần được xem xét trước cả bước thu thập dữ liệu. Bởi lẽ,
việc xác định khả năng sẵn có của dữ liệu, xác định hàm lỗi sử dụng và thời gian huấn
luyện đều là những đặc trưng của môi trường mà mạng sẽ được triển khai. Người ta
thấy rằng, do mạng nơron có đặc trưng tính toán song song, do vậy mạng nơron tốt
nhất nên được thực hiện cài đặt trên các vi mạch điện tử. Tuy nhiên, môi trường máy
tính cá nhân lại phù hợp hơn trong quá trình huấn luyện, dễ cài đặt, đồng thời có khả
năng linh hoạt đáp ứng được nhiều bài toán hơn.
Sau khi cài đặt, triển khai, khả năng hoạt động của mạng nơron sẽ giảm đi theo
thời gian nếu như không có bước thực hiện huấn luyện lại, bởi lẽ không thể đảm bảo
được rằng các tham biến được lựa chọn sẽ luôn đóng vai trò quyết định đối với các kết
quả mà ta mong muốn theo thời gian. Tần số thực hiện huấn luyện lại mạng cần hợp
lý sao cho mạng có thể đạt được trạng thái hoạt động tốt nhất.

3.2. Xây dựng chương trình dự báo


Về tổng thể, chương trình dự báo dữ liệu được xây dựng dựa trên các cơ sở lý
thuyết đã nêu trên. Mạng sử dụng trong bài toán dự báo dữ liệu là mạng truyền thẳng
nhiều lớp, được huấn luyện bởi thuật toán lan truyền ngược sửa đổi (có sử dụng tham
số bước đà) để tăng khả năng tổng quát hóa và thời gian hội tụ. Về tổng thể, các mạng
nơron truyền thẳng nhiều lớp được huấn luyện bởi thuật toán lan truyền ngược cần có
khả năng linh hoạt đáp ứng được nhiều bài toán. Điều quan trọng là xác định được các

Trang 76
biến chi phối trong bài toán, khả năng sẵn có của dữ liệu (hàng ngày, hàng tháng hay
quý, năm),...
Ở đây bài toán dự báo dữ liệu được áp dụng vào Bài toán dự báo số lượng sách
bán ra của nhà sách. Do các chủng loại sách độc lập với nhau trong bài toán dự báo và
số lượng dữ liệu cần chuẩn bị cho quá trình huấn luyện, kiểm tra và dự báo rất lớn,
điều kiện thời gian có hạn tôi xin chọn loại sách cần dự báo ở đây là sách giáo khoa
các cấp, các loại sách khác cũng được dự báo tương tự dựa trên danh sách các tham số
đầu vào được phân tích trong nhóm sách giáo khoa.
Ta sẽ bắt đầu xây dựng hệ thống này coi như một case study cho việc phát triển
các hệ thống dự báo dữ liệu.

3.2.1. Các yếu tố ảnh hưởng


Phần khó nhất trong việc xây dựng mô hình là xác định và thu thập được các
dữ liệu huấn luyện và kiểm tra. Người ta đã chỉ ra các yếu tố ảnh hưởng đến nhu cầu
sử dụng sách như sau:
Thời điểm: bao gồm các yếu tố: ngày, thứ trong tuần, tháng.
Tháng: do đặc trưng là sách giáo khoa phổ thông các cấp nên tháng là một
trong những yếu tố quan trọng, lượng sách bán ra tăng mạnh vào các tháng 7, 8, 9.
Thứ trong tuần: Mặc dù không thể tổng quát hóa thành một quy tắc chung,
nhưng các ngày giữa tuần (Thứ Ba, Tư, Năm, Sáu) chắc chắn sẽ có nhu cầu khác so
với những ngày còn lại.
Sự kiện: yếu tố này được thể hiện rõ nét với sự kiện cải cách sách giáo khoa.
Nhóm sách: vấn đề cải cách sách chỉ được tiến hành với một số bậc học nào đó
làm số lượng sách bán ra thay đổi.

3.2.2. Mô hình dự báo


Dữ liệu vào:
Dữ liệu vào sử dụng trong mô hình này được kết xuất từ cơ sở dữ liệu quản lý
sách. Các dữ liệu lịch sử mà chúng ta quan tâm được lưu trữ dưới dạng sau:

Tiền xử lý:
Với các dữ liệu đã cho, ta có thể thiết lập mô hình dữ liệu đã cho như sau:

Trang 77
Ngày trong tuần: Thể hiện các ngày Chủ Nhật, thứ Hai, thứ Ba, thứ Tư, thứ
Năm, thứ Sáu, thứ Bảy bằng các số 0, 1, 2, 3, 4, 5, 6.
Ngày cuối tuần: thể hiện thứ Hai, thứ Ba, thứ Tư, thứ Năm, thứ Sáu bởi 0; thứ
Bảy và Chủ nhật bởi 1.
Tháng trong năm: thể hiện 12 tháng trong năm bới các giá trị từ 0 đến 11.
Loại sách: do chúng ta tập trung dự báo cho nhóm sách giáo khoa phổ thông
nên các lớp từ 1 đến 12 được thể hiện bới các giá trị từ 0 đến 11.

Cấu trúc mạng:


Mạng bao gồm một lớp ra, một lớp ẩn. Rõ ràng là chỉ có duy nhất một đơn vị ở
đầu ra - lượng tiêu thụ. Số đầu vào động, phụ thuộc vào số nhân tố ảnh hưởng được sử
dụng. Số đơn vị trong lớp ẩn được xác định bằng cách huấn luyện với một số tập kiểm
tra. Mạng sẽ yêu cầu một số đơn vị trong lớp ẩn vừa đủ để có thể học được các đặc
trưng tổng quát về mối quan hệ giữa các nhân tố đầu vào và đầu ra. Mục tiêu của
chúng ta là làm sao chỉ phải sử dụng số các đơn vị trong lớp ẩn càng ít càng tốt, đồng
thời vẫn duy trì được khả năng của mạng có thể học được mối quan hệ giữa các dữ
liệu. Như đã nêu, sử dụng nhiều hơn một lớp ẩn không tăng đáng kể độ chính xác của
các dự báo. Các hàm kích hoạt của các đơn vị trong lớp ẩn là các hàm sigmoid. Đối
với các đơn vị ở lớp ra có thể là hàm sigmoid hoặc hàm đồng nhất.

Trang 78
CHƯƠNG V: CHƯƠNG TRÌNH

I. Quản lý sách

II. Dự báo kinh doanh

Trang 79
KẾT LUẬN

Trang 80
PHỤ LỤC

TÀI LIỆU THAM KHẢO

[1]. Đào Thanh Tĩnh – Phân tích và thiết kế hệ thống thông tin – NXB Quân đội nhân
dân – Năm 2004.
[2]. Kate Smith, Jatinder Gupta - Neural Networks in Bussiness: Techniques and
Applications - Idea Group Publishing © 2000.
[3]. G. Peter Zhang (ed) - Neural Networks in Business Forecasting - Idea Group
Publishing © 2004.

Trang 81

You might also like