Mạng nơ-ron xung (SNN, Spiking Neural Network)
1. Tổng quan
A. Định nghĩa
SNN (Spiking Neural Network) là mạng nơ-ron thế hệ thứ 3 mô phỏng cách nơ-ron sinh học truyền thông tin bằng cách phát (firing) tín hiệu điện (xung, Spike) tại những thời điểm nhất định; đây là mạng nơ-ron hướng sự kiện (event-driven) biểu diễn dữ liệu bằng thông tin thời gian — xung xảy ra khi nào và thường xuyên đến mức nào — chứ không phải bằng độ lớn của giá trị.
Lý do gốc rễ khiến SNN được chú ý nằm ở chỗ nó ‘giống bộ não một cách chân thực hơn nên hoạt động với điện năng thấp’. Mạng nơ-ron nhân tạo hiện có (thế hệ 2, ANN/DNN) có nơ-ron tính toán và truyền giá trị số thực liên tục ở mọi thời điểm. Cách này chính xác, nhưng ngay cả khi đầu vào gần bằng 0 thì phép nhân–cộng dồn (MAC) vẫn chạy đầy đủ nên tiêu tốn nhiều điện năng. Hiện nay, khi chi phí huấn luyện và suy luận của các mô hình ngôn ngữ lớn đã lan thành vấn đề điện năng của trung tâm dữ liệu, cấu trúc ‘tính toán luôn bật’ này bị xem là giới hạn căn bản đối với việc mở rộng.
Ngược lại, bộ não thực của con người với khoảng 86 tỷ nơ-ron chỉ hoạt động ở mức khoảng 20W, tức ít điện hơn một bóng đèn sợi đốt. Một trong những bí quyết đó là tính thưa (sparsity). Nơ-ron bình thường im lặng, chỉ phát xung tức thời khi kích thích vượt ngưỡng, còn thời gian còn lại gần như không tính toán. SNN mô phỏng cách này và hoạt động theo kiểu hướng sự kiện, chỉ tính toán khi có xung. Kết quả là trong tình huống phần lớn đầu vào là ‘không phát xung (no spike)’, điện năng tiêu thụ giảm đáng kể.
Ngoài ra, vì bản thân thời điểm xung xảy ra ‘khi nào’ là thông tin, SNN có thể xử lý tự nhiên các dữ liệu mà trục thời gian là bản chất như chuỗi thời gian, giọng nói, tín hiệu camera sự kiện. Tuy nhiên, xung là rời rạc (0 hoặc 1) nên gradient phần lớn bằng 0 hoặc không xác định, khiến khó dùng nguyên học dựa trên vi phân (lan truyền ngược, Backpropagation) vốn là nền tảng của mạng thế hệ 2 — đây là thách thức lớn nhất. Rốt cuộc, SNN hướng tới mục tiêu kết hợp với phần cứng neuromorphic để hiện thực hóa AI tiêu thụ điện cực thấp, nhưng thành bại được quyết định bởi kỹ thuật học biến tiềm năng đó thành độ chính xác thực tế.
B. Bối cảnh ra đời và sự cần thiết
Khi học sâu thế hệ 2 đạt hiệu năng vượt con người về hình ảnh và ngôn ngữ, mô hình và dữ liệu tăng bùng nổ, và cái giá phải trả là điện năng, nhiệt và chi phí cũng tăng vọt. Trên đám mây, làm mát và điện năng là nút thắt; ở biên (điện thoại thông minh, thiết bị đeo, drone, robot) thì pin là nút thắt. Tại điểm mà chỉ ‘mô hình lớn hơn’ không thể gánh nổi, nỗ lực thay đổi chính mô hình tính toán để nâng hiệu quả năng lượng (điện năng tiêu thụ trên mỗi phép tính) chính là bối cảnh của nghiên cứu SNN và neuromorphic. Khi các ứng dụng đồng thời đòi hỏi thời gian thực, độ trễ thấp, điện năng thấp như xe tự hành, IoT công nghiệp, nhận diện giọng nói luôn bật (always-on) ngày càng tăng, SNN đang được nhìn nhận lại như một công nghệ thực dụng vượt ra ngoài sự tò mò học thuật.
C. So sánh các thế hệ
Bảng dưới đây tóm tắt các thế hệ mạng nơ-ron, nhưng cần nêu rõ bằng lời rằng cốt lõi của việc phân chia thế hệ là sự thay đổi về ‘biểu diễn thông tin bằng gì’. Perceptron thế hệ 1 chỉ xuất 0/1 bằng hàm bậc thang nên năng lực biểu diễn hạn chế; thế hệ 2 nâng vượt bậc năng lực biểu diễn và khả năng học bằng giá trị kích hoạt liên tục và lan truyền ngược, nhưng đổi lại phải gánh chi phí tính toán thường trực. SNN thế hệ 3 quay lại với xung rời rạc, nhưng lần này bổ sung trục ‘thời gian’ để bảo đảm năng lực biểu diễn, nên đây không phải là sự thoái lui đơn thuần mà là một sự dung hòa mới.
| Thế hệ | Mạng nơ-ron | Biểu diễn thông tin | Học | Đặc điểm |
|---|---|---|---|---|
| Thế hệ 1 | Perceptron | Đầu ra nhị phân (bậc thang) | Hạn chế | Chỉ phân tách tuyến tính |
| Thế hệ 2 | ANN/DNN | Giá trị kích hoạt liên tục | Lan truyền ngược | Hiệu năng cao, tính toán thường trực, điện năng cao |
| Thế hệ 3 | SNN | Xung, thời gian | Gradient thay thế, STDP, v.v. | Hướng sự kiện, điện năng thấp, khó huấn luyện |
2. Mô hình nơ-ron và nguyên lý hoạt động
flowchart LR
IN["Chuỗi xung đầu vào<br/>(tổng có trọng số)"] --> ACC["Tích lũy điện thế màng<br/>(Integrate)"]
ACC --> LEAK["Rò rỉ<br/>(Leak)"]
LEAK --> T{"Vượt ngưỡng?"}
T -->|"Có(Fire)"| SPK["Phát xung → truyền đến nơ-ron tiếp theo"]
SPK --> RST["Đặt lại điện thế màng<br/>(Reset)"]
RST --> ACC
T -->|Không| ACC
style SPK fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
Hoạt động của nơ-ron SNN được tóm tắt thành bốn bước: ‘gom lại (Integrate), rò rỉ (Leak), bắn (Fire), đặt lại (Reset)’. Mô hình được dùng rộng rãi nhất là LIF (Leaky Integrate-and-Fire). Nơ-ron nhân các xung đến từ nơ-ron phía trước với trọng số synapse rồi liên tục cộng vào điện thế màng (membrane potential) (Integrate). Lúc này, điện thế màng theo thời gian rò rỉ dần và có xu hướng trở về giá trị gốc (Leak); phải có số hạng rò rỉ này thì mới hình thành bộ lọc thời gian phân biệt ‘đầu vào từ lâu’ và ‘đầu vào vừa xong’. Nếu không có rò rỉ, sớm muộn nơ-ron cũng sẽ phát xung vô điều kiện và thông tin thời gian biến mất.
Tại thời điểm điện thế màng vượt ngưỡng (threshold), nơ-ron phát một xung (Fire) và đưa điện thế màng về giá trị ban đầu (Reset). Đôi khi còn đặt thời kỳ trơ (refractory period) — ngay sau khi phát xung, nơ-ron tạm thời không phản ứng với bất kỳ đầu vào nào. Khi quy tắc đơn giản này lặp lại, đầu vào càng mạnh dồn tới thì xung càng dày, đầu vào yếu thì xung thưa. Tức là cường độ đầu vào được mã hóa một cách tự nhiên thành tần suất và thời điểm phát xung.
Cách biểu diễn thông tin bằng xung (mã hóa, coding) chia thành hai loại lớn. Mã hóa theo tốc độ (rate coding) biểu diễn giá trị bằng số xung (tốc độ phát xung) trong một cửa sổ thời gian nhất định. Cách này dễ triển khai và bền trước nhiễu, nhưng cần thời gian để đếm đủ số xung nên chịu thiệt về độ trễ và điện năng. Mã hóa theo thời gian (temporal coding) gắn thông tin vào chính thời điểm phát xung, chẳng hạn ‘xung đầu tiên đến nhanh đến mức nào’. Chỉ vài xung đã chứa nhiều thông tin nên nhanh và hiệu quả, nhưng nhạy với nhiễu thời điểm và khó huấn luyện. Hệ thống thực tế dung hòa hai cách theo đặc tính bài toán. Có những mô hình tinh vi hơn LIF về mặt sinh học như Izhikevich, Hodgkin-Huxley, nhưng do khối lượng tính toán lớn nên SNN quy mô lớn chủ yếu chọn họ LIF đơn giản.
3. Cấu trúc tổng thể và kiến trúc neuromorphic
flowchart TD
A["Đầu vào cảm biến<br/>(camera sự kiện, giọng nói, chuỗi thời gian)"] --> B["Mã hóa xung<br/>(rate/temporal)"]
B --> C["Lớp SNN<br/>(nơ-ron LIF + synapse)"]
C --> D["Triển khai trạng thái theo thời gian<br/>(điện thế màng, thời kỳ trơ)"]
D --> E["Giải mã đầu ra<br/>(tốc độ phát xung, xung đầu tiên)"]
C -. Ánh xạ .-> H["Chip neuromorphic<br/>(tích hợp bộ nhớ + tính toán trong lõi)"]
H --> I["Định tuyến sự kiện<br/>(truyền xung AER)"]
style C fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
style H fill:#fde8e8,stroke:#d64545,stroke-width:2px
Hệ thống SNN có luồng mã hóa chuyển đầu vào thành xung → xử lý theo thời gian ở lớp SNN → giải mã đưa kết quả trở lại thành giá trị. Việc mã hóa phía trước quan trọng vì phần lớn dữ liệu trên đời là giá trị số thực (độ sáng điểm ảnh, biên độ âm thanh). Phải chuyển chúng thành chuỗi xung theo cách rate/temporal thì SNN mới xử lý được. Ngoại lệ là camera sự kiện (DVS, Dynamic Vision Sensor) chỉ phát sự kiện tại thời điểm độ sáng điểm ảnh thay đổi, nên bản thân nó đã là luồng xung mà không cần mã hóa riêng, rất hợp với SNN.
Điểm cốt lõi là SNN là hệ động lực có trạng thái triển khai theo thời gian. Nếu mạng thế hệ 2 là hàm tĩnh cho một đầu ra với mỗi đầu vào, thì trong SNN, qua nhiều bước thời gian (timestep), điện thế màng lên xuống, xung qua lại và trạng thái thay đổi. Vì thế, dù cùng số nơ-ron, phải hiểu nó bằng cách trải theo trục thời gian như mạng nơ-ron hồi quy (RNN). Đặc tính động này mang lại thế mạnh cho xử lý chuỗi thời gian, đồng thời tạo ra sự phức tạp khi huấn luyện vì phải ‘lan truyền sai số ngược theo thời gian’.
Lợi thế điện năng thấp của SNN chỉ được hiện thực hóa khi gặp phần cứng. CPU/GPU kiến trúc von Neumann có bộ tính toán và bộ nhớ tách rời, nên phần lớn điện năng bị tiêu tốn cho việc di chuyển dữ liệu (bức tường bộ nhớ, memory wall). Chip neuromorphic thì khác, tích hợp tính toán và bộ nhớ vào một chỗ theo đơn vị nơ-ron và synapse, và chỉ kích hoạt bất đồng bộ các nơ-ron đã phát xung. Xung được truyền chỉ dưới dạng địa chỉ–sự kiện ‘nơ-ron nào đã phát lúc nào’ bằng cách như AER (Address-Event Representation), giảm đồng thời lưu lượng truyền thông và điện năng. Tóm lại, SNN là thuật toán còn neuromorphic là phần cứng chạy thuật toán đó hiệu quả nhất, và hai thứ chỉ có ý nghĩa khi được thiết kế cùng nhau. [[neuromorphic]]
4. Phương pháp huấn luyện — Ba hướng vượt qua bức tường rời rạc
Rào cản kỹ thuật lớn nhất của SNN là huấn luyện. Việc phát xung giống như hàm bậc thang, gradient bằng 0 ở phần lớn khoảng và không khả vi tại điểm ngưỡng. Lan truyền ngược truyền sai số bằng cách nhân các gradient, nên nếu gradient bằng 0 thì tín hiệu học biến mất. Các cách tiếp cận để vượt qua điều này đã phát triển theo ba hướng lớn.
Thứ nhất, phương pháp gradient thay thế (Surrogate Gradient). Trong lan truyền xuôi (forward) vẫn dùng hàm bậc thang thật để tạo xung, nhưng chỉ trong lan truyền ngược (backward) thì lấy vi phân ‘thay thế’ hàm bậc thang bằng một đường cong trơn (ví dụ: dạng đạo hàm của sigmoid). Kết hợp với BPTT (lan truyền ngược theo thời gian) — trải theo trục thời gian rồi lan truyền ngược — phương pháp này đã trở thành tiêu chuẩn trên thực tế để huấn luyện SNN end-to-end trên các framework học sâu ngày nay. Độ chính xác cao nhất, nhưng có hạn chế là bản thân việc huấn luyện diễn ra trên GPU nên hiệu quả tiết kiệm điện ở giai đoạn huấn luyện không lớn.
Thứ hai, STDP (Spike-Timing-Dependent Plasticity, tính dẻo phụ thuộc thời điểm phát xung). Phương pháp này dùng nguyên quy tắc sinh học ‘nếu nơ-ron trước phát trước và nơ-ron sau phát ngay sau đó thì tăng cường kết nối, nếu thứ tự ngược lại thì làm yếu đi’ để huấn luyện. Việc học diễn ra không cần nhãn (không giám sát) chỉ với thông tin cục bộ nên phù hợp với học trên chip (on-chip), nhưng khó hội tụ về mục tiêu toàn cục (phân loại chính xác) nên hiệu năng thua kém trong các bài toán quy mô lớn.
Thứ ba, chuyển đổi ANN-to-SNN. Trước tiên tạo một ANN thế hệ 2 đã được huấn luyện tốt, sau đó chuyển trọng số của nó sang SNN dựa trên mã hóa theo tốc độ. Bằng cách cho giá trị kích hoạt ReLU tương ứng với tốc độ phát xung, phương pháp này có ưu điểm dễ dàng đạt độ chính xác cao. Tuy nhiên, để giữ độ chính xác cần đủ số bước thời gian nên độ trễ suy luận và điện năng tăng, và có sự đánh đổi căn bản là không tận dụng tích cực thông tin thời gian. Trong thực tế, tùy mục tiêu (độ chính xác, hay điện năng cực thấp và độ trễ cực thấp) mà chọn hoặc kết hợp ba hướng này.
5. So sánh với ANN và các tình huống ứng dụng
Khác biệt giữa SNN và ANN thế hệ 2 không phải là hơn kém hiệu năng đơn thuần mà xuất phát từ khác biệt về ‘tối ưu hóa cái gì’. ANN được tối ưu cho độ chính xác và sự thuận tiện khi huấn luyện, còn SNN được tối ưu cho hiệu quả năng lượng và khả năng phản ứng theo thời gian. Vì thế, nếu chỉ so sánh con số benchmark độ chính xác thì SNN nhìn chung bất lợi, nhưng nếu đổi trục sang ‘số lần suy luận trên mỗi watt’ hay ‘độ trễ phản ứng sự kiện’ thì câu chuyện lại khác.
| Phân loại | ANN/DNN thế hệ 2 | SNN thế hệ 3 |
|---|---|---|
| Biểu diễn thông tin | Giá trị kích hoạt liên tục | Xung rời rạc, thời điểm |
| Cách tính toán | Tính toán thường trực (dense) | Hướng sự kiện (sparse) |
| Điện năng | Cao | Rất thấp (khi kết hợp phần cứng) |
| Huấn luyện | Lan truyền ngược (trưởng thành) | Gradient thay thế, STDP, chuyển đổi (đang phát triển) |
| Lĩnh vực thế mạnh | Nhận dạng, tạo sinh quy mô lớn | Chuỗi thời gian, sự kiện, điện năng thấp ở biên |
Có thể nêu ba tình huống cụ thể. Thứ nhất, chip neuromorphic Loihi 2 của Intel và framework nghiên cứu Lava đã báo cáo kết quả giảm năng lượng trên mỗi phép tính hàng chục lần trở lên so với GPU/CPU hiện có trong các tác vụ như nhận diện từ khóa, nhận diện cử chỉ (do độ lệch lớn tùy tác vụ và điều kiện đo nên không khái quát hóa giá trị tuyệt đối). Thứ hai, TrueNorth của IBM chứa khoảng 1 triệu nơ-ron và 256 triệu synapse nhưng được thiết kế để thực hiện nhận dạng mẫu thời gian thực với điện năng ở mức vài chục mW, là con chip thể hiện một cách biểu tượng khả năng điện năng thấp của neuromorphic ngay từ đầu. Thứ ba, tổ hợp camera sự kiện (DVS) + SNN xử lý hàng nghìn đến hàng chục nghìn sự kiện mỗi giây với độ trễ cỡ micro giây, tạo hiệu quả thực tế trong các ứng dụng mà camera dựa trên khung hình gặp gánh nặng về độ trễ và điện năng như theo dõi vật thể tốc độ cao, drone né vật cản. Như vậy, SNN không phải là công nghệ “thay thế ANN trong mọi bài toán”, mà đang định vị là công nghệ tạo ra hiệu quả vượt trội trong các ngách mà điện năng, độ trễ và tính thời gian là yếu tố quyết định.
6. Chuyên sâu — Xu hướng mới nhất, tiêu chuẩn và hệ sinh thái
Xu hướng đầu tiên gần đây là sự trưởng thành của hệ sinh thái phần cứng–phần mềm chung. Intel đã công bố framework mã nguồn mở Lava cùng với Loihi 2, và các thư viện dựa trên PyTorch như snnTorch, SpikingJelly, Norse đã phổ cập việc huấn luyện bằng gradient thay thế, giúp nhà nghiên cứu có thể làm việc với SNN bằng các công cụ học sâu quen thuộc. Đây là thay đổi hạ thấp đáng kể rào cản gia nhập nghiên cứu SNN.
Thứ hai là sự xuất hiện của hệ thống neuromorphic quy mô lớn. Intel đã mở rộng đáng kể quy mô nơ-ron và synapse thông qua hệ thống nghiên cứu quy mô lớn (Hala Point) kết hợp nhiều chip Loihi 2, và điều này đang trở thành phép thử xem SNN có thể vượt qua các thí nghiệm biên quy mô nhỏ để hướng tới bài toán quy mô lớn hay không. Thứ ba là nỗ lực kết hợp với Transformer và LLM. Các nghiên cứu thuộc dòng Spiking Transformer diễn giải lại cấu trúc attention dựa trên xung đã xuất hiện, khám phá khả năng của mô hình quy mô lớn điện năng thấp. Tuy nhiên, về độ chính xác và độ trưởng thành vẫn còn ở giai đoạn đầu so với thế hệ 2, nên cần lưu ý rằng các con số hiệu năng cụ thể có độ lệch lớn tùy công bố và điều kiện, không nên tiếp nhận một cách khẳng định.
Thứ tư là sự kết hợp với AI trên thiết bị (on-device) và AI luôn bật. Trong các ứng dụng phải chạy thường trực bằng pin như nhận diện giọng nói thường trực trên đồng hồ thông minh, khử nhiễu thời gian thực trên máy trợ thính, phát hiện bất thường của cảm biến công nghiệp, SNN và neuromorphic đang được xem xét như một phương án thay thế tiềm năng. [[on-device-ai]]
Hướng ra đề dự kiến và chiến lược cấu trúc bài làm
SNN có thể được ra đề trong lĩnh vực AI và dữ liệu cùng với neuromorphic, AI điện năng thấp, hoặc trong bối cảnh thay đổi thế hệ của học sâu. Triển khai bài làm theo các trục sau sẽ dễ bảo đảm chiều sâu.
- Định nghĩa, điểm khác biệt: Đối chiếu với ANN thế hệ 2 để trước hết khẳng định bản chất ‘xung, thời gian, hướng sự kiện’.
- Nguyên lý hoạt động: Trình bày LIF (Integrate-Leak-Fire-Reset) và mã hóa rate/temporal kèm sơ đồ.
- Thách thức cốt lõi: Kết nối tính rời rạc → khó lan truyền ngược → ba hướng gradient thay thế, STDP, chuyển đổi ANN.
- Liên kết phần cứng: Giải thích ‘điều kiện hiện thực hóa’ điện năng thấp bằng neuromorphic (Loihi, TrueNorth), bức tường bộ nhớ, AER.
- Ứng dụng, triển vọng: Kết thúc bằng các lĩnh vực phù hợp như biên, camera sự kiện, AI trên thiết bị và các đánh đổi.
- Chủ đề liên kết: Gộp với điện toán neuromorphic, AI trên thiết bị, AI xanh để xây dựng bài làm mở rộng.
7. Lưu ý và hàm ý (góc nhìn Kỹ sư chuyên nghiệp)
Đồng thiết kế thuật toán–phần cứng là tiền đề. Lợi thế điện năng thấp của SNN trên GPU có khi lại là bất lợi (chi phí xử lý xung). Điện năng thấp chỉ được hiện thực hóa trên chip neuromorphic, nên khi áp dụng, chiến lược đồng thiết kế (co-design) chọn cùng lúc thuật toán và phần cứng đích là bắt buộc. Áp dụng SNN mà không xác định phần cứng sẽ mất phần lớn lợi thế.
Phải quản lý tường minh đánh đổi ba bên giữa độ chính xác, độ trễ và điện năng. Tăng số bước thời gian thì độ chính xác tăng nhưng độ trễ và điện năng cũng tăng theo. Cần đặt điểm cân bằng này khác nhau tùy yêu cầu ứng dụng (ví dụ: độ trễ phản ứng của xe tự hành so với pin của thiết bị đeo), và không có một đáp án duy nhất.
Trước hết phải đánh giá mức phù hợp với bài toán. SNN không phải là vạn năng. Nó mạnh ở các bài toán mà trục thời gian là bản chất (sự kiện, chuỗi thời gian) hoặc điện năng bị ràng buộc cực đoan, còn trong phân loại, tạo sinh ảnh tĩnh quy mô lớn thì thế hệ 2 đã trưởng thành vẫn có lợi thế. Phải quyết định áp dụng hay không dựa trên sự phù hợp với đặc tính bài toán chứ không phải ‘trào lưu công nghệ’.
Cần áp dụng từng bước có tính đến rủi ro về độ trưởng thành và hệ sinh thái. Kỹ thuật huấn luyện, công cụ và tiêu chuẩn vẫn đang phát triển, nên việc tuyển dụng nhân tài, gỡ lỗi và kiểm chứng khó hơn thế hệ 2. Chiến lược thực tế là cách tiếp cận từng bước PoC → ứng dụng biên điện năng thấp cụ thể → mở rộng, cùng với phân tán rủi ro bằng mô hình lai với ANN thế hệ 2 (chỉ đường xử lý điện năng thấp cốt lõi dùng SNN).
Triển vọng: Một trụ cột của AI bền vững. Trong bối cảnh điện năng tiêu thụ của AI nổi lên như một chi phí xã hội, SNN và neuromorphic — những thứ nâng cao hiệu quả năng lượng một cách căn bản — là ứng viên cốt lõi cho ‘AI xanh’ và trí tuệ biên. Nhiều khả năng chúng sẽ phát triển song song: ngắn hạn ở các ứng dụng điện năng thấp ngách, dài hạn như một con đường nâng cao hiệu quả của mô hình quy mô lớn.
Tài liệu tham khảo
- Intel Neuromorphic Computing / Loihi 2 · Lava: https://www.intel.com/content/www/us/en/research/neuromorphic-computing.html
- IBM TrueNorth (Science, 2014): https://www.science.org/doi/10.1126/science.1254642
- snnTorch (surrogate gradient tutorial): https://snntorch.readthedocs.io/
- Wikipedia — Spiking neural network: https://en.wikipedia.org/wiki/Spiking_neural_network
Tóm tắt một câu: SNN là mạng nơ-ron hướng sự kiện thế hệ thứ 3 mô phỏng việc phát xung và thời điểm phát xung (thời gian) của nơ-ron, chỉ tính toán khi có xung để hiện thực hóa điện năng cực thấp và độ trễ thấp, nhưng do tính rời rạc nên không thể dùng nguyên lan truyền ngược; nó phát triển nhờ các kỹ thuật học chuyên dụng như gradient thay thế, STDP, chuyển đổi ANN và đồng thiết kế với phần cứng neuromorphic (Loihi, TrueNorth), phát huy giá trị thực sự trong các ứng dụng biên và sự kiện nơi tính thời gian và điện năng là yếu tố quyết định.