京东方一面面经(AI平台)
京东方一面面经
主要是问简历里面技术内容,楼主投的职位是AI平台开发方向。
- 自我介绍一下
- MLAI绿色电池黑客马拉松里面你为什么想要使用svm
我分析一下选择使用SVM的原因:问题特点:电力交易和电池储能优化涉及多个特征(如价格模式、能源需求、存储水平等)的决策分类这些交易决策往往有明确的策略边界SVM在这个场景的优势:善于在高维特征空间中找到清晰的决策边界,这对复杂的交易决策很有帮助适合处理能源市场通常提供的结构化数据相比一些更复杂的模型,SVM较不容易过拟合通过核函数可以处理线性和非线性关系不过我注意到最终DQN的表现更好。这说明该问题可能更适合用强化学习来优化序列决策 - 这在能源交易中往往是关键。
- 介绍一下DQN
让我详细介绍一下DQN (Deep Q-Network): 基本概念DQN是深度强化学习的一种算法,它结合了深度神经网络和Q学习主要用于解决具有连续状态空间的决策问题核心工作原理将状态作为输入传入深度神经网络网络输出每个可能动作的Q值(期望收益)Agent根据Q值选择动作(通常使用ε-greedy策略)通过与环境交互获得奖励,更新网络参数关键创新点Experience Replay(经验回放)存储历史经验(状态、动作、奖励、下一状态)随机采样进行学习,打破数据相关性Target Network(目标网络)使用单独的网络计算目标Q值定期更新,提高训练稳定性在电池优化中的应用优势可以处理连续的电价、电量等状态变量能够学习长期的优化策略,不仅考虑即时收益可以适应市场波动,形成动态的充放电决策通过经验积累不断改善策略主要挑战需要大量训练数据和计算资源参数调优较为复杂训练过程可能不稳定
这就是为什么在电池项目中,DQN可能比SVM表现更好 - 它能更好地处理这种需要连续决策和长期规划的优化问题
- 介绍一下python迭代器和生成器迭代器(Iterator):
定义:是一个实现了迭代器协议的对象,包含__iter__()和__next__()两个方法特点: 可以记住遍历位置只能往前遍历,不能后退遍历到最后会抛出StopIteration异常优点:节省内存,一次只获取一个元素生成器(Generator):定义:是一种特殊的迭代器,使用yield语句的函数就会变成生成器特点: 1.使用yield关键字来返回值 2. 函数执行到yield会暂停,保存当前状态 3. 下次调用会从暂停处继续执行优点: 写法更简单,不用实现迭代器协议内存效率高,按需生成数据适合处理大数据集和无限序列主要区别:生成器是创建迭代器的简单方式生成器使用yield,迭代器需要实现特定方法生成器会自动实现迭代器协议生成器能更好地保存状态信息使用场景:处理大文件生成无限序列需要节省内存的场景数据流处理
- 你熟悉python吗,为什么python的多线程是假多线程
Python的threading模块完全可以创建真实的操作系统级线程。问题在于Python解释器的GIL(全局解释器锁)限制了这些线程的并行执行。在同一时刻,只有一个线程能够获得GIL并执行Python代码。这就导致即使你创建了多个线程,它们也无法真正并行执行所以说,Python的多线程并不是"假的"线程,而是受到了GIL的限制,无法充分发挥多核CPU的优势。这就是为什么在CPU密集型任务中,Python多线程的性能可能不如单线程。比较准确的说法应该是:Python支持真实的操作系统线程,但由于GIL的存在,这些线程无法实现真正的并行计算。拓展: GIL的本质: GIL是Python解释器(CPython)中的一个互斥锁任何Python线程执行前,必须先获得GIL每执行100个字节码指令,Python解释器就会自动释放GIL这意味着在任何时刻,只有一个线程可以执行Python代码为什么保留GIL: 简化了Python解释器的实现避免了大量的锁操作,提高了单线程程序的执行效率保证了现有C扩展库的线程安全解决方案: 要获得真正的并行计算能力,通常建议使用multiprocessing模块,因为每个进程都有自己的Python解释器和内存空间,不受GIL的限制。
- 你用什么c++版本
c++11
- 你可以说一下c++和c的区别吗
From AI:面向对象编程 C++支持类、继承、多态、封装C是面向过程的语言,不支持OOP特性内存管理 C++有new/delete运算符C使用malloc/free函数C++11引入智能指针(unique_ptr, shared_ptr)进行自动内存管理函数特性 C++支持函数重载(同名不同参)C++支持默认参数C++支持引用传递,C只有值传递和指针传递泛型编程 1.C++支持模板,可以实现泛型编程 2. C不支持泛型,需要为不同类型写不同函数异常处理 C++有try/catch异常处理机制C只能通过返回值和errno处理错误标准库 C++有STL(容器、算法、迭代器等)C的标准库相对简单,功能较少类型安全 C++更强调类型安全支持const、static_cast、dynamic_cast等类型检查C的类型检查相对宽松语言特性: C++11新增了auto关键字、lambda表达式、右值引用支持范围for循环nullptr替代NULL支持多线程(std::thread)
- 另一个Hr问项目
- 你有什么问题想问我
面试官您好,我想了解一下京东方是如何培养新入职员工尽快熟悉他的工作的呢,比如AI平台开发方向。
发现直接粘贴过来不全。。