Professional Documents
Culture Documents
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.
SINHVIÊN
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
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.
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
+ 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.
+ Đầ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.
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.
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.
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
HÓA ĐƠN
SỐ:………
Tên NXB:……………………………………………………………..
Ngày HĐ:……/………/…………
Trang 13
BM3 ĐƠN ĐẶT HÀNG
ĐƠN HÀNG
SỐ:…………
Tên NXB:………………………………………………………………..
Ngày ĐH:………/………/……………………………………………..
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ỉ:…………………………………………………………………
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
Trang 17
3. Vẽ mô hình
BP BÁN HÀNG
BP THU NGÂN
Phiếu dự trù
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
2. Vẽ sơ đồ
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
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
Luồng dữ liệu:
Kho dữ liệu:
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
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)
Báo giá
Tồn kho
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
Trang 21
DFD mức 2 của chức năng “Đặt hàng”
Hóa đơn
Sách
Đơn hàng
Trang 22
DFD mức 2 chức năng “Quản lý kho”
Bản dự trù
Trang 23
DFD mức 2 chức năng “Bán hàng và thu ngân”
Thống kê sách
Đơn hàng
Bán hàng và thu ngân
KHÁCH 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)
Trang 25
2. Xác định kiểu liên kết
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ể:
b. Vẽ mô hình
Trang 27
T H EO
G IA O
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ó:
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
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
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
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
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
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
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
txtTenTacGia cboNXB
Tên tác giả: Nhà xuất bản:
cboIDNgonNgu cboIDQuocGia
Quốc gia: Ngôn ngữ:
Giới thiệu:
txtGioThieu
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:
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 ổn định
+ 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.
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)
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
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).
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.
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.
θ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
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
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].
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.
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.
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.
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.
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.
Để 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
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.
Trang 58
Với nơron ẩn thứ j:
n +1
a j =∑wij xi +θ j , y j = f (a j )
i =1
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.
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ự.
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:
• 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.
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
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
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
∂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}
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)
∆θ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
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.
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
Hằng số họ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.
Tiền xử lý
Mạng nơron
Hậu xử lý
Trang 67
Các dữ liệu có thể liên quan
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ý.
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.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.
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.
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.
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.
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.
Trang 78
CHƯƠNG V: CHƯƠNG TRÌNH
I. Quản lý sách
Trang 79
KẾT LUẬN
Trang 80
PHỤ LỤC
[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