gradient_descentを使用すると必ずエラーになる


deep learningを勉強してまして、下記のコードでgradient_descentを入れて実行すると必ずエラーになってしまいます。  
解決策のご教示よろしくお願い致します。

[code]

    def function_2(x):
        return x[0]**2 + x[1]**2
    
    init_x = np.array([-3.0, 4.0])
    gradient_descent(function_2, init_x=init_x, lr=0.1, step_num=100)
    
[/code]

[code]

    NameError                                 Traceback (most recent call last)
    <ipython-input-27-4e91f7136fec> in <module>
          5 
          6 init_x = np.array([-3.0, 4.0])
    ----> 7 gradient_descent(function_2, init_x=init_x, lr=0.1, step_num=100)
    
    NameError: name 'gradient_descent' is not defined
    
[/code]

