Правильно ли я понимаю разницу между нейронной сетью и компьютерной программой?
У программы внутре думатель. Он думает быстрее человека, иначе зачем он нужен? 
Думатель может работать либо исключительно на разработанной программистами логике и математике, либо может ещё и с применением натренированной программистами нейросети. 
Для некоторых задач логика и математика надежней, лучше и проще, а также легче перенастраивается. 
Для других некоторых задач сухая логика или плохо справляется, или требует очень много труда программистов.

 И для некоторых из этих некоторых  задач удаётся внутрь думателя вместо логически-математического блока вставить что-то вроде калейдоскопа, в который можно посветить фонариком и получить чудную картинку. Посветишь под другим углом - другая картинка получится. В калейдоскопе ни логики, ни математики в явном виде нет, там зеркальца, цветные камешки... но всё по законам физики. Так и в нейросети - вроде всё по законам информатики, но в то же время - зеркальца и стёклышки. 

Как-то так...
Нейронная сеть - это математическая модель.
Программа - комбинация инструкций и данных для аппаратного обеспечения.

В любой программе можно использовать разные математические модели, например, используя один генератор случайных чисел можно предоставить пользователю программы разные распределения: нормальное, равномерное и т.д.

Можно написать программу, которая на входе преобразует входные данные в тот вид, который удобно использовать с определенной реализацией нейронной сети, а на выходе - в вид, удобный пользователю программы.

Нейронную сеть можно обучать и можно использовать. Программа, которая реализует нейронную сеть, останется такой же, вне зависимости, что там с нейронной сетью происходит, обучается она или работает штатно.

В одной программе можно реализовать много нейросетей, целый конвейер, хотя это в большинстве случаев не практично, но теоретически возможно.