A computer-implemented learning method comprising: an input step of inputting, to a neural network (10b; 10c) comprising a first neural network (11; 11a) and a second neural network (13; 13c) that differs from the first neural network, a first image and a second image, wherein the first image and the second image are temporally adjacent images that constitute a moving image, the second image being an image subsequent to the first image with a predetermined time interval therebetween, wherein the first neural network (11; 11a) receives said first image and said second image input to the neural network (10b; 10c), and wherein the second neural network receives said first and second images (51, 52) input to the neural network (10b; 10c) and receives a first motion amount image output from the first neural network, said first motion amount image representing a first amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses; a learning step of i) causing the first neural network (11; 11a) that constitutes the neural network (10b; 10c) to use the received first image and the second image inputted in the input step and learn to output said first motion amount image representing a first amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses, and ii) causing the second neural network (13; 13c) that constitutes the neural networkto use the received first and second images (51, 52) inputted in the input step to the neural network (10b; 10c) and the first motion amount image output from the first neural network (11; 11a), and learn to output a second motion amount image representing a second amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses; and an output step of outputting, by the second neural network (13; 13c), the second motion amount image as an estimated optical flow that represents the motion between said first image and said second image inputted in the inputting step. an input step of inputting, to a neural network (10b; 10c) comprising a first neural network (11; 11a) and a second neural network (13; 13c) that differs from the first neural network, a first image and a second image, wherein the first image and the second image are temporally adjacent images that constitute a moving image, the second image being an image subsequent to the first image with a predetermined time interval therebetween, wherein the first neural network (11; 11a) receives said first image and said second image input to the neural network (10b; 10c), and wherein the second neural network receives said first and second images (51, 52) input to the neural network (10b; 10c) and receives a first motion amount image output from the first neural network, said first motion amount image representing a first amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses; a learning step of i) causing the first neural network (11; 11a) that constitutes the neural network (10b; 10c) to use the received first image and the second image inputted in the input step and learn to output said first motion amount image representing a first amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses, and ii) causing the second neural network (13; 13c) that constitutes the neural networkto use the received first and second images (51, 52) inputted in the input step to the neural network (10b; 10c) and the first motion amount image output from the first neural network (11; 11a), and learn to output a second motion amount image representing a second amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses; and i) causing the first neural network (11; 11a) that constitutes the neural network (10b; 10c) to use the received first image and the second image inputted in the input step and learn to output said first motion amount image representing a first amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses, and ii) causing the second neural network (13; 13c) that constitutes the neural networkto use the received first and second images (51, 52) inputted in the input step to the neural network (10b; 10c) and the first motion amount image output from the first neural network (11; 11a), and learn to output a second motion amount image representing a second amount of motion of each of the pixels of the first image that continues until the predetermined time interval elapses; and an output step of outputting, by the second neural network (13; 13c), the second motion amount image as an estimated optical flow that represents the motion between said first image and said second image inputted in the inputting step.