Content deleted Content added
not needed |
Move hatnote text to See also. {{see also}} is not suitable for the top of an article |
||
(5 intermediate revisions by 5 users not shown) | |||
Line 1:
{{short description|Ability of a computer system to cope with errors during execution}}
{{Complex systems}}
Line 11 ⟶ 10:
== Challenges ==
Programs and software are tools focused on a very specific task, and thus
Currently, computer science practices do not focus on building robust systems.<ref name="MIT" /> Rather, they tend to focus on [[scalability]] and [[Algorithmic efficiency|efficiency]]. One of the main reasons why there is no focus on robustness today is because it is hard to do in a general way.<ref name="MIT" />
Line 26 ⟶ 24:
;Stupidity: The programmer assumes users will try incorrect, bogus and malformed inputs.<ref name="robust_programming" /> As a consequence, the programmer returns to the user an unambiguous, intuitive error message that does not require looking up error codes. The error message should try to be as accurate as possible without being misleading to the user, so that the problem can be fixed with ease.
;Dangerous implements: Users should not gain access to [[Library (computing)|libraries]], [[data structure]]s, or [[Pointer (computer programming)|pointers]] to data structures.<ref name="robust_programming" /> This information should be hidden from the user so that the user
;[[Assertion (software development)|Can't happen]]: Very often, code is modified and may introduce a possibility that an "impossible" case occurs. Impossible cases are therefore assumed to be highly unlikely instead.<ref name="robust_programming" /> The developer thinks about how to handle the case that is highly unlikely, and implements the handling accordingly.
===Robust machine learning===
Robust machine learning typically refers to the robustness of machine learning algorithms. For a machine learning algorithm to be considered robust, either the testing error has to be consistent with the training error, or the performance is stable after adding some noise to the dataset.<ref>{{cite web |author=El Sayed Mahmoud|title=What is the definition of the robustness of a machine learning algorithm? |url=https://www.researchgate.net/post/What_is_the_definition_of_the_robustness_of_a_machine_learning_algorithm |access-date=2016-11-13}}</ref> Recently, consistently with their rise in popularity, there has been an increasing interest in the robustness of neural networks. This is particularly due their vulnerability to adverserial attacks.<ref>{{cite arXiv |last1=Li |first1=Linyi |last2=Xie |first2=Tao |last3=Li |first3=Bo |title=SoK: Certified Robustness for Deep Neural Networks |
===Robust network design===
Line 38 ⟶ 36:
=== Robust algorithms ===
There
==See also==
*[[Fault tolerance]]
* [[Defensive programming]]
* [[Non-functional requirement]]
|